Чи можна моделювати стаціонарну серію за допомогою ARIMA?


12

У мене є питання / плутанина щодо стаціонарних серій, необхідних для моделювання з ARIMA (X). Я думаю про це більше з точки зору висновку (ефекту від втручання), але хотів би знати, чи прогнозування проти умовиводу має якусь різницю у відповіді.

Питання:

Усі прочитані вами вступні ресурси стверджують, що серія повинна бути нерухомою, що має для мене сенс, і саме там "я" в аримі входить (розрізняється).

Мене бентежить використання тенденцій та зрушень в ARIMA (X) та наслідки (якщо такі є) для стаціонарних вимог.

Чи використання константного / дрейф-терміна та / або змінної тренда як екзогенної змінної (тобто додавання 't' як регресора) заперечує вимогу стаціонарного ряду? Чи відрізняється відповідь залежно від того, чи є у серії одиничний корінь (наприклад, тест adf) чи детермінований тренд, але немає одиничного кореня?

АБО

Чи завжди серія повинна бути нерухомою, її роблять за допомогою розмежування та / або зменшення, перш ніж використовувати ARIMA (X)?

Відповіді:


12

З огляду на коментарі, здається, ми не зверталися до питання про те, як вибрати між детермінованою чи стохастичною тенденцією. Тобто як діяти на практиці, а не наслідки чи властивості кожного випадку.

Один із способів продовження - наступний: Почніть із застосування тесту ADF.

  • Якщо нуль одиничного кореня відхилено, ми закінчуємо. Тенденція (якщо така є) може бути представлена ​​детермінованою лінійною тенденцією.
  • Якщо нуль тесту ADF не відхилено, ми застосовуємо тест KPSS (де нульова гіпотеза є протилежною, стаціонарність або стаціонарність навколо лінійної тенденції).

    o Якщо нуль тесту KPSS відхилено, то робимо висновок про існування одиничного кореня та працюємо з першими відмінностями даних. За першими відмінностями серії ми можемо перевірити значення інших регресорів або вибрати модель ARMA.

    o Якщо нуль тесту KPSS не буде відхилено, ми повинні сказати, що дані не дуже інформативні, оскільки ми не змогли відкинути жодну з нульових гіпотез. У цьому випадку може бути безпечніше працювати з першими відмінностями серії.

Як згадувалося в попередній відповіді, пам’ятайте, що на ці тести може впливати наявність залишків (наприклад, вибірка в один момент часу через помилку під час запису даних або зсув рівня, наприклад, через зміну політики, яка впливає на серія з даного моменту часу). Таким чином, доцільно також перевірити ці питання та повторити попередній аналіз після включення регресорів для деяких потенційних людей, що втратили досвід.


Дивовижно! Чи було правильним моє запитання щодо коментарів, що якщо ми бачимо, як виглядає тенденція, ми використовуємо тест ADF, який включає тенденцію (варіант №3 у посиланні, яке я розмістив)?
B_Miner

Останнє запитання - що ви робите із ситуації, коли вам підходить ARIMA, скажімо, ARIMA (0,1,1) до серії, а середня різниця не дорівнює нулю? Це означає, що я вважаю, що ви додаєте константу до моделі - що також представляє лінійну тенденцію в оригінальній серії. Що означає цей випадок? Чи детермінованою є тенденція в оригінальній серії, оскільки диференціація серій не усунула тенденцію?
B_Miner

@B_Miner Щодо вашого першого коментаря, я б почав із включення лише перехоплення. Якщо тенденція виглядає дещо експоненціальною, ви також можете додати параметр нахилу лінійного тренду і побачити, чи є він значущим. Загалом, краще почати з моделі з малою кількістю параметрів, і якщо діагностика залишків не задовільна, тоді слід розглянути питання про додавання інших елементів.
javlacalle

@B_Miner Перші відмінності усувають як детерміновану, так і стохастичну тенденцію. Якщо ви бачите тенденцію в диференційованих рядах в моделі з перехопленням, тоді вам слід розглянути можливість повторного розходження (тобто тест на корінь другої одиниці).
javlacalle

1
@pidosaurus відсутність узгодження між тестами ADF та KPSS може бути пов’язаний з малим розміром вибірки, наявністю видатків, нелінійним трендом, ... якщо після подальшого огляду все ще не зрозуміло, який з них є більш підходящим, може бути безпечнішим врахувати наявність одиничного кореня. Швидкий огляд ваших даних запропонував мені наявність нелінійної тенденції, квадратична тенденція форми може бути доречною. a1t+a2t2
javlacalle

5

Пам'ятайте, що існують різні види нестаціонарності та різні способи поводження з ними. Чотири поширених:

1) Детерміновані тенденції або стаціонарність тенденцій. Якщо ваша серія є такою, що де-трендовою, вона включатиме тенденцію часу в регресію / модель. Можливо, ви хочете перевірити теорему Фріша – Ву-Ловелла на цій.

2) Зміна рівня та структурні розриви. Якщо це так, ви повинні включити фіксовану змінну для кожного перерви або якщо ваш зразок достатньо довгий, моделюйте кожну схему окремо.

3) Зміна дисперсії. Або моделюйте зразки окремо, або моделюйте мінливу дисперсію, використовуючи клас моделювання ARCH або GARCH.

4) Якщо ваша серія містить одиничний корінь. Загалом, тоді слід перевірити наявність взаємозамінних зв’язків між змінними, але оскільки ви переймаєтесь однозначним прогнозуванням, вам слід різнитися один раз або два рази залежно від порядку інтеграції.

Для моделювання часового ряду за допомогою класу моделювання ARIMA слід виконати наступні кроки:

1) Подивіться на ACF та PACF разом із графіком часових рядів, щоб побачити, чи є серія стаціонарною чи нестаціонарною.

2) Перевірте ряд на одиничний корінь. Це можна зробити за допомогою широкого спектру тестів, одними з найбільш поширених є тест АПД, тест Філіпса-Перрона (ПП), тест KPSS, який має нульову стаціонарність, або тест DF-GLS, який є найбільш ефективним. вищезазначених тестів. ПРИМІТКА! У тому випадку, якщо ваша серія містить структурний розрив, ці тести є упередженими щодо не відхилення нуля одиничного кореня. Якщо ви хочете перевірити надійність цих тестів і якщо ви підозрюєте про один або декілька структурних розривів, вам слід скористатися ендогенними тестами на розрив структури. Два поширених - тест Зивот-Ендрюса, який дозволяє зробити один ендогенний структурний розрив, і Клементе-Монтаньє-Рейєс, який дозволяє зробити два структурних розриви. Остання дозволяє використовувати дві різні моделі.

3) Якщо в ряду є одиничний корінь, то слід відрізняти ряд. Після цього слід заглянути в ACF, PACF та графік часових рядів, і, ймовірно, перевірити, чи є корень другої одиниці на безпечній стороні. ACF та PACF допоможуть вам визначити, скільки термінів AR та MA ви повинні включати.

4) Якщо серія не містить одиничного кореня, але графік часового ряду та ACF показують, що серія має детерміновану тенденцію, слід додати тенденцію при встановленні моделі. Деякі люди стверджують, що цілком справедливо лише відрізняти ряд, коли він містить детерміновану тенденцію, хоча інформація може втрачатися в процесі. Тим не менш, це гарна ідея, щоб відрізнити це, щоб побачити багато термінів AR та / або MA, які вам потрібно буде включити. Але часова тенденція справедлива.

5) Встановіть різні моделі та зробіть звичайну діагностичну перевірку, можливо, ви захочете скористатись інформаційним критерієм або MSE, щоб вибрати найкращу модель з огляду на зразок, на який ви її підходите.

6) Виконайте вибіркове прогнозування на найкращих моделях та обчисліть функції втрат, такі як MSE, MAPE, MAD, щоб побачити, хто з них насправді найкраще працює при використанні їх для прогнозування, тому що це ми хочемо зробити!

7) Робіть прогнозування зразка, як начальник, і будьте задоволені своїми результатами!


І швидко відповісти на ваше запитання. Так, це може.
Пліскен

Мені не дозволяли коментувати вищесказане, оскільки я не маю достатньої репутації, але хочу зазначити, що процес білого шуму є нерухомим. Її середня величина та відхилення не змінюються з часом, тому вони нерухомі!
Пліскен

Ден, чудова відповідь! Щодо вашого останнього коментаря тут, ви хочете сказати, що якщо ви закінчитеся із залишком білого шуму, який є нерухомим .... то це говорить вам, що ви моделювали серію адекватно (тобто вирішували питання стаціонарності правильно / адекватно)?
B_Miner

1
Так саме. Часто тест Ljung-Box Q використовується для тестування залишків, щоб побачити, чи вони випадкові чи ні. Якщо вони є, то модель є адекватним представленням даних. Що я забув згадати у наведеній вище відповіді, це також те, що після того, як ви встановите модель, ви зможете переглянути графік ACF та часових рядів залишків встановленої серії. Це дасть вам хороший показник того, чи є у вас залишки білого шуму чи ні (ACF не повинен мати значних відставань). У будь-якому випадку, у більшості статистичних пакетів є команда для тесту Ljung-Box Q.
Пліскен

Ось посилання на вікі для тесту Ljung-Box Q: en.wikipedia.org/wiki/Ljung%E2%80%93Box_test
Пліскен

5

Визначення того, чи є тенденція (або інший компонент, такий як сезонність) детермінованим чи стохастичним, є частиною загадки в аналізі часових рядів. Я додам пару пунктів до сказаного.

1) Відмінність між детермінованими та стохастичними тенденціями важлива, тому що якщо в даних присутній одиничний корінь (наприклад, випадкова хода), то статистика тестів, що використовується для висновку, не відповідає традиційному розподілу. Дивіться цю публікацію для отримання детальної інформації та посилань.

Ми можемо імітувати випадкову прогулянку (стохастична тенденція, де слід взяти перші розбіжності), перевірити значення детермінованої тенденції та побачити відсоток випадків, коли нульова детермінована тенденція відкидається. У R ми можемо:

require(lmtest)
iter <- 10000
cval <- 0.05
n <- 120
rejections <- 0
set.seed(123)
for (i in seq.int(iter))
{
  x <- cumsum(rnorm(n)) # random walk
  fit <- lm(x ~ seq(n))
  if (coeftest(fit)[2,"Pr(>|t|)"] < cval)
    rejections <- rejections + 1
}
100 * rejections / iter
#[1] 88.67

На рівні 5% значущості ми очікували б відхилити нуль у 95% випадків, однак у цьому експерименті його було відхилено лише у ~ 89% випадків із 10 000 модельованих випадкових прогулянок.

Ми можемо застосувати одиничні кореневі тести, щоб перевірити, чи є корінь одиниці. Але ми маємо усвідомлювати, що лінійна тенденція в свою чергу може призвести до відмови відхилити нуль одиничного кореня. Щоб вирішити це, тест KPSS враховує нульову стаціонарність навколо лінійної тенденції.

2) Інше питання - інтерпретація детермінованих компонентів у процесі в рівнях або перших відмінностях. Ефект перехоплення не такий, як у моделі з лінійною тенденцією, як у випадковій ході. Дивіться цю ілюстрацію для ілюстрації.

Аналітично візьмемо випадкову прогулянку з дрейфом:

yt=μ+yt1+ϵt,ϵtNID(0,σ2).

Якщо ми кілька разів підміняємо версіями : y tytiyt

yt=μ+yt1μ+yt2+ϵt1+ϵt=2μ+yt2μ+yt3+ϵt2+ϵt1+ϵt=3μ+yt3+ϵt2+ϵt1+ϵt...

Ми приїжджаємо до:

yt=y0+μt+i=1tϵi

де - деяке довільне початкове значення. Таким чином, ми бачимо, що накопичення поштовхів і довга пам'ять випадкової прогулянки змушує перехоплення мати ефект лінійної тенденції з нахилом (у цьому випадку постійний термін називається дрейфом). μ µ μy0μμμ

Якщо графічне зображення ряду показує відносно чітку лінійну тенденцію, ми не можемо бути впевнені, пов'язано це з наявністю детермінованої лінійної тенденції або зсувом у процесі випадкового ходу. Слід застосовувати додаткову графіку та статистику тестів.

Майте на увазі деякі застереження, оскільки аналіз, заснований на одиничному корені та інших статистичних даних тесту, не є надійним. На деякі з цих випробувань може вплинути наявність зовнішніх спостережень або зрушення рівня і вимагати вибір порядку відставання, який не завжди є простим.

Як вирішення цієї головоломки, я вважаю, що поширена практика полягає в тому, щоб приймати відмінності даних, поки серія не виглядає нерухомою (наприклад, перегляд функції автокореляції, яка повинна швидко перейти до нуля), а потім вибрати модель ARMA.


Greta post- ви, очевидно, чудовий актив цього сайту! Мені було цікаво дивитись тут та на Ваші інші дописи - чи можна використовувати тест ADF або KPSS, щоб визначити, чи є те, що виглядає як тенденція в рядах рівнів детермінованою чи стохастичною? Я виявив це: fakultet.smu.edu/tfomby/eco6375/BJ%20Notes/ADF%20Notes.pdf, що робить його схожим на те, що ви бачите тенденцію візуально в серії, використовуйте варіант № 3 тесту, і якщо ви не відхиляєте нуль, у вас є докази детермінованої тенденції.
B_Miner

Виходячи з коментаря Дена, я думаю, якщо ви отримаєте залишки білого шуму, нічого з цього не має значення :)
B_Miner

5

Дуже цікаве запитання, я також хотів би знати, що мають сказати інші. Я інженер за освітою, а не статистик, тому хтось може перевірити мою логіку. Як інженери ми хотіли б імітувати та експериментувати, тому я був вмотивований імітувати та перевіряти ваше запитання.

Як емпірично показано нижче, використання змінної тенденції в ARIMAX заперечує необхідність розмежування та робить тренд серії стаціонарним. Ось логіка, яку я використовував для перевірки.

  1. Моделював процес AR
  2. Додано детерміновану тенденцію
  3. Використання моделей ARIMAX з урахуванням тенденції як екзогенної змінної вищевказаних рядів без розходження.
  4. Перевірив залишки на білий шум, і це чисто випадково

Нижче наведено код R та сюжети:

set.seed(3215)

##Simulate an AR process
x <- arima.sim(n = 63,list(ar = c(0.7)));
plot(x)

## Add Deterministic Trend to AR
t <- seq(1, 63)
beta <- 0.8
t_beta <- ts(t*beta,frequency=1)
ar_det <- x+t_beta
plot(ar_det)

## Check with arima

ar_model <- arima(ar_det,order=c(1,0,0),xreg=t,include.mean=FALSE)

## Check whether residuals of fitted model is random

pacf(ar_model$residuals)

AR (1) Імітований сюжет введіть тут опис зображення

AR (1) з детермінованою тенденцією введіть тут опис зображення

ARIMAX Залишковий PACF з тенденцією до екзогенності. Залишки випадкові, без візерунка введіть тут опис зображення

Як видно вище, моделювання детермінованої тенденції як екзогенної змінної в моделі ARIMAX заперечує необхідність диференціювання. Принаймні, у детермінованій справі це спрацювало. Цікаво, як це поводитиметься зі стохастичним трендом, який дуже важко передбачити або моделювати.

Щоб відповісти на ваше друге питання, ТАК усі ARIMA, включаючи ARIMAX, повинні бути нерухомими. Принаймні, так кажуть текстові книги.

Крім того, як коментується, дивіться цю статтю . Дуже чітке пояснення щодо Детермінованої тенденції проти стохастичного тренду та як їх усунути, щоб зробити його тенденцією нерухомим, а також дуже приємним опитуванням літератури на цю тему. Вони використовують його в контексті нейронної мережі, але це корисно для загальної проблеми часових рядів. Їх остаточна рекомендація полягає в тому, коли вона чітко визначена як детермінований тренд, робити лінійне зменшення, інше застосовувати диференціювання, щоб зробити часовий ряд нерухомим. Засідання присяжних все ще там, але більшість дослідників, цитованих у цій статті, рекомендують проводити диференціацію, а не лінійну деградацію.

Редагувати:

Нижче - випадкова хода з дрейфовим стохастичним процесом, використовуючи екзогенну змінну та різницю арима. Здається, обидва дають однакову відповідь і по суті вони однакові.

library(Hmisc)

set.seed(3215)

## ADD Stochastic Trend to simulated Arima this is AR(1) with unit root with non zero mean

y = rep(NA,63)
y[[1]] <- 2


for (i in 2:63)  {
y[i] <-3+1*y[i-1]+ rnorm(1, mean = 0, sd = 1)
} 

plot(y,type="l")

y_ts <- ts(y,frequency=1)

## Lag to create Xreg

y_1 <- Lag(y,shift=1)


## Start from 2 value to avoid NA and make it equal length with xreg

y <- window(y_ts,start =2,end=63)
xreg1 <- y_1[-1]

## Check the values with ARIMA and xreg

g <- arima(y,order=c(0,0,0),xreg=xreg1)

pacf(g$residuals)

## Check the values with ARIM

g1 <- arima(y,order=c(0,1,0))

pacf(g1$residuals)

## 

ARIMA(0,0,0) with non-zero mean 

Coefficients:
      intercept   xreg1
         3.1304  0.9976
s.e.     0.2664  0.0025

Сподіваюся, це допомагає!


Мене цікавлять і інші погляди - я не впевнений, чи відповідає залишковий білий шум вимозі, що серія нерухома - тобто якщо ви досягнете білого шуму, чи можете ви бути задоволені? Або включення екзогенної змінної насправді діє на «де-тренд» і робить цю серію нерухомою? Цікаво, чи перевірити це питання пізніше, якщо ви отримаєте ту саму модель (коефіцієнт ar1 і т. Д.), Якщо ви відхиляєтесь від лінійної регресії, а потім підходите до арими (1,0,0) ... Я зробив це і результати близькі. Тож, можливо, додавання екзогенної змінної - це те саме, що і детрендація.
B_Miner

Так, це те саме, кілька місяців тому я натрапив на це в статті прогнозування нейронної мережі. Я надам довідку, якщо знайду.
синоптик

Будь-яке уявлення про випадок, коли є одиничний корінь або коли в моделі є константа?
B_Miner

Я оновив свою відповідь статтею, про яку я посилався.
синоптик

Я думаю, ви, можливо, не зберегли це.
B_Miner
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.