Ось приклад нестаціонарної серії, яку не може виявити навіть тест на білий шум (не кажучи вже про тест типу Dickey-Fuller):
Так, це може бути дивно, але це не білий шум .
Більшість нестаціонарних прикладів лічильника ґрунтуються на порушенні двох перших умов стаціонарних: детерміновані тенденції (середнє постійне значення) або одиничний кореневий / гетерокедастичний часовий ряд (непостійна дисперсія). Однак ви також можете мати нестаціонарні процеси, які мають постійне середнє значення та дисперсію, але вони порушують третю умову: функція автоковаріації (ACVF) повинна бути постійною у часі та функцією | s - t | тільки.c o v ( xс, хт)| s-t |
Наведений вище часовий ряд є прикладом такого ряду, який має нульове середнє значення, дисперсію одиниці, але ACVF залежить від часу. Точніше, вищевказаний процес - локально стаціонарний процес MA (1) з такими параметрами, що він стає хибним білим шумом (див. Посилання нижче): параметр процесу MA змінюється часхт=εt+θ1εt−1
θ1(u)=0.5−1⋅u,
де - нормалізований час. Причина, по якій це виглядає як білий шум (навіть якщо за математичним визначенням це явно не є), полягає в тому, що час, що змінюється, ACVF інтегрується з нулем у часі. Оскільки зразок ACVF переходить до середнього ACVF, це означає, що автоковаріація зразка (і автокореляція (ACF)) буде конвергуватися у функцію, схожу на білий шум. Тож навіть тест Ljung-Box не зможе виявити цю нестаціонарність. У роботі (відмова: я - автор) у статті " Тестування білого шуму на місцевих стаціонарних альтернативах" пропонується розширити тести Box для розгляду таких локально стаціонарних процесів.u=t/T
Більше коду R та додаткових відомостей див. У цій публікації в блозі .
Оновлення після коментаря mpiktas :
Це правда, що це може виглядати як теоретично цікавий випадок, який не спостерігається на практиці. Я погоджуюся, що навряд чи можна побачити такий хибний білий шум безпосередньо в наборі даних про реальний світ, але ви побачите це майже в будь-яких залишках нерухомої моделі. Не вдаючись до занадто багато теоретичних деталей, просто уявіть загальну модель, що змінюється за часом
з функцією коваріації, що змінюється за часом γ θ ( k , u ) . Якщо ви підходите до постійної моделі & thetas , то ця оцінка буде близька до середнього часу істинної моделі & thetas ( у ) ; і, природно, залишки тепер будуть близькимиθ ( u )γθ( k , u )θˆθ ( u ) , який за конструкцією & thetas буде інтегрувати до нуля (приблизно). Докладніше див. У Goerg (2012).θ ( u ) - θˆθˆ
Давайте розглянемо приклад
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,23 (так як г < 0,5 ми думаємо , все в порядку і у нас є стаціонарна модель). Давайте перевіримо залишки:гˆ= 0,23гˆ< 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) .
Це показує, що мій - правда, теоретично приклад, насправді, зустрічається у більшості прикладів реального світу.