Предположим, у меня есть следующие непериодические временные ряды. Очевидно, что тенденция уменьшается, и я хотел бы доказать это с помощью некоторого теста (с 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)
Какие у меня варианты?
r
time-series
Ladislav Naďo
источник
источник
frequency=1
), здесь мало уместен. Более актуальным вопросом может быть, хотите ли вы указать функциональную форму для вашей модели.Ответы:
Как вы сказали, тенденция в данных вашего примера очевидна. Если вы хотите просто обосновать этот факт с помощью теста гипотезы, чем помимо использования линейной регрессии (очевидный параметрический выбор), вы можете использовать непараметрический критерий Манна-Кендалла для монотонного тренда. Тест используется для
Кроме того, как отметил Гилберт (1987), тест
Тестовая статистика - это разница между отрицательными и положительными различиями среди всех возможных пар, т.е.xj−xi n(n−1)/2
где - это знаковая функция . можно использовать для расчета статистики которая похожа на корреляцию, поскольку она колеблется от до , где знак указывает на отрицательный или положительный тренд, а значение пропорционально наклону тренда.sgn(⋅) S τ −1 +1 τ
Наконец, вы можете вычислить . Для выборок размером вы можете использовать таблицы предварительно вычисленных значений для разных значений и разных размеров выборки (см. Gilbert, 1987). Для больших выборок сначала нужно вычислить дисперсиюp n≤10 p S S
В этой теме вы можете найти код R, реализующий этот тест.
Гилберт, RO (1987). Статистические методы мониторинга загрязнения окружающей среды. Wiley, NY.
Önöz, B. & Bayazit, M. (2003). Сила статистических тестов для выявления трендов. Турецкий журнал инженерных и экологических наук, 27 (4), 247-251.
источник
Проблема, с которой вы столкнулись: «Я не могу использовать классическую линейную регрессию из-за сильной временной (последовательной) автокорреляции между значениями». на самом деле это возможность. Я взял ваши 27 значений и использовал AUTOBOX часть программного обеспечения (которое я помогал разработать), которое может (опционально) автоматически определять возможную модель. Вот график фактической / пригодности и прогноза . ACF остатков здесь с остатком здесь . Модель здесь и здесь и здесь, Два коэффициента точно описывают данные с оценкой «тренд» или «дрейф», то есть разница между периодами составляет -.596. Обратите внимание, что это один из видов тренда, когда ваша модель использовала счетные числа 1,2, ... 27 в качестве переменной-предиктора. Если бы ваши данные указывали на такую тенденцию, то программное обеспечение сочло бы ее более применимой. Я попытаюсь найти мой более ранний пост, который полностью детализировал / противопоставил эти два вида тенденций. Здесь Идентификация стохастической модели тренда и Определение начального тренда или выбросов
источник
Вы можете использовать коэффициент ранговой корреляции Спирмена, чтобы определить степень монотонности ваших данных. Возвращает положительные значения для монотонно убывающих данных и отрицательные значения для монотонно убывающих данных (между -1 и +1). Перейдя по ссылке выше, есть также тестирование значимости раздел дилинга, хотя я уверен , что большинство программных пакетов будут иметь значение р сделано для вас при вычислении коэффициентов корреляции (например , в Matlab:
[RHO,PVAL] = corr(...)
; в R:cor.test(x,...)
)источник
Вы можете использовать OLS, потому что нет последовательной автокорреляции (по крайней мере, в предоставленном вами образце); обратите внимание на статистику теста Дурбина-Ватсона 1.966 (≈2).
Итак, существенно отрицательная оценка коэффициента для x1 - это все, что вам нужно, чтобы сказать что-то вроде
или же
Это предполагает, что методология подсчета видов имеет хороший охват и является последовательной на протяжении многих лет в вашей выборке.
Это было сделано с помощью этого кода на Python (извините, R не пригодится):
источник
Было бы очень полезно знать источник данных, а также информацию о том, могут ли значения
my.ts
быть отрицательными или нет.Однако, бросая быстрый взгляд на график, вместо того, чтобы видеть постоянный линейный тренд , я скорее предполагаю, что временной ряд не является стационарным, а следовательно, интегрированным . Например, цены на акции также интегрированы, но акции больше не возвращаются (они колеблются около 0).
Эту гипотезу также можно проверить с помощью расширенного теста Дики-Фуллера:
Учитывая, что значение p не ниже 0,05, нет никаких доказательств того, что процесс является стационарным.
Чтобы данные были постоянными, нужно их различать:
Теперь данные больше не показывают тренда , и единственное, что вы найдете, это авторегрессионный член порядка 2 (использование
acf(diff.ts)
).источник