Вот пример нестационарного ряда, который не может обнаружить даже тест белого шума (не говоря уже о тесте типа Дики-Фуллера):
Да, это может быть удивительно, но это не белый шум .
Большинство примеров нестационарных счетчиков основаны на нарушении первых двух условий стационарных: детерминированных трендов (непостоянное среднее) или единичного корня / гетероскедастических временных рядов (непостоянная дисперсия). Тем не менее, вы также можете иметь нестационарные процессы, которые имеют постоянное среднее значение и дисперсию, но они нарушают третье условие: функция автоковариации (ACVF) должна быть постоянной во времени и функциейтолько.| с - т |c o v ( xs, хT)| с-т |
Приведенный выше временной ряд является примером такого ряда, который имеет нулевое среднее значение, единичную дисперсию, но ACVF зависит от времени. Точнее, вышеописанный процесс является локально стационарным процессом MA (1) с параметрами, такими, что он становится ложным белым шумом (см. Ссылки ниже): параметр процесса MA меняется со временемИксT= εT+ θ1εт - 1
θ1( У ) = 0,5 - 1 ⋅ U ,
где - нормированное время. Причина, по которой это выглядит как белый шум (хотя по математическому определению это явно не так), заключается в том, что изменяющийся во времени ACVF интегрируется в ноль с течением времени. Поскольку ACVF образца сходится к среднему ACVF, это означает, что автоковариация образца (и автокорреляция (ACF)) будут сходиться к функции, которая выглядит как белый шум. Так что даже тест Льюнга-Бокса не сможет обнаружить эту нестационарность. В статье (отказ от ответственности: я являюсь автором) « Тестирование на белый шум против локально-стационарных альтернатив» предлагается расширение боксовых тестов для решения таких локально-стационарных процессов.и = т / т
Для большего количества R-кода и более подробной информации смотрите также этот пост в блоге .
Обновление после комментария mpiktas :
Это правда, что это может выглядеть так же, как теоретически интересный случай, который не виден на практике. Я согласен, что вряд ли такой паразитный белый шум будет виден непосредственно в наборе данных реального мира, но вы увидите это практически во всех остатках стационарной модели. Не вдаваясь в теоретические детали, представьте общую изменяющуюся во времени модель
с изменяющейся во времени ковариационной функцией . Если вы подгоните постоянную модель , то эта оценка будет близка к средней по времени истинной модели ; и, естественно, остатки теперь будут близки к , который по конструкцииθ ( и )thetas ; & thetas ; ( у ) & thetas ; ( у ) - & thetas ; & thetas ;γθ( к , ты )θˆθ ( и )θ ( u ) - θˆθˆбудет интегрировать в ноль (приблизительно). См. Goerg (2012) для деталей.
Давайте посмотрим на пример
library(fracdiff)
library(data.table)
tree.ring <- ts(fread(file.path(data.path, "tree-rings.txt"))[, V1])
layout(matrix(1:4, ncol = 2))
plot(tree.ring)
acf(tree.ring)
mod.arfima <- fracdiff(tree.ring)
mod.arfima$d
## [1] 0.236507
Таким образом, мы подбираем дробный шум с параметром (так как мы думаем, что все в порядке, и у нас есть стационарная модель). Давайте проверим остатки: д <0,5dˆ= 0,23dˆ< 0,5
arfima.res <- diffseries(tree.ring, mod.arfima$d)
plot(arfima.res)
acf(arfima.res)
Выглядит хорошо, правда? Ну, проблема в том, что остатки являются ложным белым шумом . Откуда я знаю? Во-первых, я могу проверить это
Box.test(arfima.res, type = "Ljung-Box")
##
## Box-Ljung test
##
## data: arfima.res
## X-squared = 1.8757, df = 1, p-value = 0.1708
Box.test.ls(arfima.res, K = 4, type = "Ljung-Box")
##
## LS Ljung-Box test; Number of windows = 4; non-overlapping window
## size = 497
##
## data: arfima.res
## X-squared = 39.361, df = 4, p-value = 5.867e-08
и, во-вторых, из литературы нам известно, что данные о древовидных кольцах фактически являются локально-стационарными дробными шумами: см. Goerg (2012) и Ferreira, Olea и Palma (2013) .
Это показывает, что мой - по общему признанию - теоретически выглядящий пример действительно встречается в большинстве реальных примеров.