Как анализировать тренд в непериодических временных рядах

12

Предположим, у меня есть следующие непериодические временные ряды. Очевидно, что тенденция уменьшается, и я хотел бы доказать это с помощью некоторого теста (с p-значением ). Я не могу использовать классическую линейную регрессию из-за сильной временной (последовательной) автокорреляции между значениями.

library(forecast)
my.ts <- ts(c(10,11,11.5,10,10.1,9,11,10,8,9,9,
               6,5,5,4,3,3,2,1,2,4,4,2,1,1,0.5,1),
            start = 1, end = 27,frequency = 1)
plot(my.ts, col = "black", type = "p",
     pch = 20, cex = 1.2, ylim = c(0,13))
# line of moving averages 
lines(ma(my.ts,3),col="red", lty = 2, lwd = 2)

введите описание изображения здесь

Какие у меня варианты?

Ladislav Naďo
источник
4
Я думаю, что тот факт, что ряд непериодический ( frequency=1), здесь мало уместен. Более актуальным вопросом может быть, хотите ли вы указать функциональную форму для вашей модели.
Ричард Харди
1
Еще немного информации о том, что данные, вероятно, будет полезно для моделирования.
bdeonovic
Данные представляют собой количество особей (в тысячах) определенных видов, которые ежегодно подсчитываются в водохранилище.
Ладислав Naďo
1
@LadislavNado Ваша серия такая короткая, как в приведенном примере? Я спрашиваю, потому что, если так, это уменьшает количество методов, которые можно использовать из-за размера выборки.
Тим
1
Очевидность уменьшающегося аспекта довольно сильно зависит от масштаба, что, на мой взгляд, должно быть принято во внимание
Лоран Дюваль

Ответы:

7

Как вы сказали, тенденция в данных вашего примера очевидна. Если вы хотите просто обосновать этот факт с помощью теста гипотезы, чем помимо использования линейной регрессии (очевидный параметрический выбор), вы можете использовать непараметрический критерий Манна-Кендалла для монотонного тренда. Тест используется для

оценить, есть ли монотонный восходящий или нисходящий тренд интересующей переменной во времени. Монотонный восходящий (нисходящий) тренд означает, что переменная постоянно увеличивается (уменьшается) во времени, но тренд может быть или не быть линейным. ( http://vsp.pnnl.gov/help/Vsample/Design_Trend_Mann_Kendall.htm )

Кроме того, как отметил Гилберт (1987), тест

Это особенно полезно, поскольку пропущенные значения допускаются, и данные не должны соответствовать какому-либо конкретному распределению

Тестовая статистика - это разница между отрицательными и положительными различиями среди всех возможных пар, т.е.xjxin(n1)/2

S=i=1n1j=i+1nsgn(xjxi)

где - это знаковая функция . можно использовать для расчета статистики которая похожа на корреляцию, поскольку она колеблется от до , где знак указывает на отрицательный или положительный тренд, а значение пропорционально наклону тренда.sgn()S τ1+1τ

τ=Sn(n1)/2

Наконец, вы можете вычислить . Для выборок размером вы можете использовать таблицы предварительно вычисленных значений для разных значений и разных размеров выборки (см. Gilbert, 1987). Для больших выборок сначала нужно вычислить дисперсиюpn10pSS

var(S)=118[n(n1)(2n+5)p=1gtp(tp1)(2tp+5)]

ZMK

ZMK={S1var(S)if S>00if S=0S+1var(S)if S<0

ZMK

  • ZMKZ1α
  • ZMKZ1α
  • |ZMK|Z1α/2

В этой теме вы можете найти код R, реализующий этот тест.

SpSpSdataSpermutationSdataSpermutation


Гилберт, RO (1987). Статистические методы мониторинга загрязнения окружающей среды. Wiley, NY.

Önöz, B. & Bayazit, M. (2003). Сила статистических тестов для выявления трендов. Турецкий журнал инженерных и экологических наук, 27 (4), 247-251.

Тим
источник
1

Проблема, с которой вы столкнулись: «Я не могу использовать классическую линейную регрессию из-за сильной временной (последовательной) автокорреляции между значениями». на самом деле это возможность. Я взял ваши 27 значений и использовал AUTOBOX часть программного обеспечения (которое я помогал разработать), которое может (опционально) автоматически определять возможную модель. Вот график фактической / пригодности и прогноза введите описание изображения здесь. ACF остатков здесь с остатком здесь введите описание изображения здесь. Модель здесь введите описание изображения здесьи здесь введите описание изображения здесьи здесьвведите описание изображения здесь, Два коэффициента точно описывают данные с оценкой «тренд» или «дрейф», то есть разница между периодами составляет -.596. Обратите внимание, что это один из видов тренда, когда ваша модель использовала счетные числа 1,2, ... 27 в качестве переменной-предиктора. Если бы ваши данные указывали на такую ​​тенденцию, то программное обеспечение сочло бы ее более применимой. Я попытаюсь найти мой более ранний пост, который полностью детализировал / противопоставил эти два вида тенденций. Здесь Идентификация стохастической модели тренда и Определение начального тренда или выбросов

введите описание изображения здесь

IrishStat
источник
2
Прогноз Autobox пропускает все интересные моменты 1996, 1999, 2000, 2009 годов, где последние тенденции нарушены. Это почти как сдвиг фазы на один год. В связи с этим это ничего не объясняет.
Аксакал
Ваша предыдущая рекомендация (языком в щеку) о подборе полинома высокой степени к данным будет делать то, что вы просили. Но мы не о примерке, мы о моделировании. Остаточный график, кажется, адекватно описывает процесс ошибки из-за некоторого внешнего / неизвестного фактора. Все модели ошибочны, но некоторые полезны. Я считаю, что это полезная модель, но если вы считаете, что можете добиться большего, пожалуйста, опубликуйте свои результаты, чтобы мы все могли учиться. В модели ARIMA нет объяснений, поскольку прошлое - это просто прокси для пропущенных переменных.
IrishStat
2
В этом случае кажется, что статистика не имеет ничего общего. Это не интересный вопрос статистики вообще. Там очевидная тенденция, и ОП должен изучить физику этого явления. Я думаю, что эти модели, как в Autobox, просто ведут OP в неправильном направлении. Они не раскрывают ничего ценного, кроме того, что уже очевидно.
Аксакал
Вопрос в том, может ли аналитика заменить человеческий глаз ... Анализ показывает, что поддерживает глаз. Вот почему мы практикуем статистику, чтобы делать больше, чем можно сразу увидеть. Решение AUTOBOX направляет OP в правильном направлении, то есть вниз. Ваши комментарии, на мой взгляд, совсем не продуктивны, НО, как я ранее просил (вежливо), предоставьте статистически обоснованную альтернативу. На мой взгляд, это очень интересный статистический вопрос и требует ответа. Пожалуйста, предоставьте один, если можете.
IrishStat
1

Вы можете использовать коэффициент ранговой корреляции Спирмена, чтобы определить степень монотонности ваших данных. Возвращает положительные значения для монотонно убывающих данных и отрицательные значения для монотонно убывающих данных (между -1 и +1). Перейдя по ссылке выше, есть также тестирование значимости раздел дилинга, хотя я уверен , что большинство программных пакетов будут иметь значение р сделано для вас при вычислении коэффициентов корреляции (например , в Matlab: [RHO,PVAL] = corr(...); в R: cor.test(x,...))

Александр Федорович
источник
0

Вы можете использовать OLS, потому что нет последовательной автокорреляции (по крайней мере, в предоставленном вами образце); обратите внимание на статистику теста Дурбина-Ватсона 1.966 (≈2).

Итак, существенно отрицательная оценка коэффициента для x1 - это все, что вам нужно, чтобы сказать что-то вроде

Наблюдаемое количество [определенных видов] уменьшается примерно на 1000 в год.

или же

Наблюдаемое количество [определенных видов] уменьшается от 628 до 1408 в год (с достоверностью 95%).

Это предполагает, что методология подсчета видов имеет хороший охват и является последовательной на протяжении многих лет в вашей выборке.

введите описание изображения здесь

Это было сделано с помощью этого кода на Python (извините, R не пригодится):

import numpy as np
import statsmodels.api as sm

y = [10,12,10,11,8,9,6,4,2,4]
x = np.arange(len(y))
x = sm.add_constant(x)

mod = sm.OLS(y, x)
result = mod.fit()
print(result.summary())
Америка
источник
0

Было бы очень полезно знать источник данных, а также информацию о том, могут ли значения my.tsбыть отрицательными или нет.

Однако, бросая быстрый взгляд на график, вместо того, чтобы видеть постоянный линейный тренд , я скорее предполагаю, что временной ряд не является стационарным, а следовательно, интегрированным . Например, цены на акции также интегрированы, но акции больше не возвращаются (они колеблются около 0).

Эту гипотезу также можно проверить с помощью расширенного теста Дики-Фуллера:

require(tseries)
adf.test(my.ts)

Augmented Dickey-Fuller Test
Dickey-Fuller = -2.9557, Lag order = 2, p-value = 0.7727
alternative hypothesis: stationary

Учитывая, что значение p не ниже 0,05, нет никаких доказательств того, что процесс является стационарным.

Чтобы данные были постоянными, нужно их различать:

diff.ts <- diff(my.ts)
plot(diff.ts)

введите описание изображения здесь

Теперь данные больше не показывают тренда , и единственное, что вы найдете, это авторегрессионный член порядка 2 (использование acf(diff.ts)).

lambruscoAcido
источник