Різниця часових рядів перед Арімою або в межах Аріми


13

Чи краще відрізнити ряд (якщо припустити, що він потрібен) перед тим, як використовувати Аріма АБО, краще використовувати параметр d у Arima?

Я був здивований, наскільки різні пристосовані значення залежать від маршруту, взятого з тією ж моделлю та даними. Або я щось неправильно роблю?

install.packages("forecast")
library(forecast)

wineindT<-window(wineind, start=c(1987,1), end=c(1994,8))
wineindT_diff <-diff(wineindT)

#coefficients and other measures are similar
modA<-Arima(wineindT,order=c(1,1,0))
summary(modA)
modB<-Arima(wineindT_diff,order=c(1,0,0))
summary(modB)

#fitted values from modA
A<-forecast.Arima(modA,1)$fitted

#fitted from modB, setting initial value to the first value in the original series
B<-diffinv(forecast.Arima(modB,1)$fitted,xi=wineindT[1])


plot(A, col="red")
lines(B, col="blue")

ДОДАТИ:

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

Я порівнюю відповідні значення - не прогнози.

Ось сюжет (червоний - аріма (1,1,0), а синій - арима (1,0,0) у різнилися рядах після зміни повернення до початкового масштабу):

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

Відповідь на відповідь доктора Хайндмана:

1) Чи можете ви проілюструвати в коді R, що мені потрібно зробити для того, щоб відповідати двом встановленим значенням (і, імовірно, прогнозам), щоб відповідати (зважаючи на невелику різницю через ваш перший пункт у вашій відповіді) між Арімою (1,1, 0) та Аріма (1,0,0) на різницеві серії? Я припускаю, що це пов'язане з тим, що серед модуля не включено до моди, але я не зовсім впевнений, як діяти.

2) Щодо вашого №3. Я знаю, що я пропускаю очевидне, але це не а те ж саме, коли визначається як ? Ти кажеш, що я недіфференціюю неправильно?X^t=Xt1+ϕ(Xt1Xt2)Y^t=ϕ(Xt1Xt2)Y^tX^tXt1


1
Щодо вашого оновлення. 1) Я не бачу сенсу робити це. Аріма () створить відповідні значення та прогнози. Чому я повинен створювати додатковий код R, щоб зробити те саме, що вже робить Аріма ()? 2) Так, але відмінність X-hat не дає вам Y-hat. Отже, нерівномірна Y-шапка не дає вам X-hat.
Роб Хайндман

2
Дякую. 1) була навчальною вправою для мене. 2) Моя помилка в обчисленні в моєму первісному запитанні (з використанням diffinv) полягала в використанні встановлених значень, а не оригінал - це те, що я думаю, що я отримую з цього питання (?) ... що призводить до №1, як правильно невідповідність даних. Я знаю, що Аріма це зробить, просто намагаючись наслідувати приклад книги, використовуючи рівняння.
B_Miner

Відповіді:


14

Тут є кілька питань.

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

  2. Крім відмінностей в оцінці, дві ваші моделі не є рівнозначними, оскільки modBвключає постійну, а modAне. За замовчуванням Arima()включає константу, коли і не константа, коли . Ви можете переоцінити ці параметри за замовчуванням аргументом.d=0d>0include.mean

  3. Встановлені значення вихідних даних не еквівалентні знакам, що не підпадають під розрізнення на різнисті дані. Щоб побачити це, зауважте, що встановлені значення вихідних даних задаються тоді як придатні значення по разностная даних задаються , де є оригінальним часових рядів і є розрізнений ряд. Таким чином У т=φ(Хт-1-Хт-2){Хт}{Ут} Х т - Х т-1 Y т.

    X^t=Xt1+ϕ(Xt1Xt2)
    Y^t=ϕ(Xt1Xt2)
    {Xt}{Yt}
    X^tX^t1Y^t.

1
+1, я збирався дати як відповідь 2 бали. Кудо за включення інших 2.
mpiktas

Доктор Хайндман, дякую за відгук! У мене АЛОТ дізнатися про аналіз часових рядів. Чи можна попросити подальше спостереження? Я не впевнений, що точно знаю, що робити з цією інформацією, тому надсилаю доповнення до мого оригінального запитання.
B_Miner

2

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

ВІДПОВІДЬ ДО БУНТІ:

Спосіб отримання одних і тих же результатів / пристосованих значень - це після фізичної диференціації ороговільних (Y (t) рядів, щоб отримати першу різницю (делі), оцінку AR (1) без постійної величини. Це рівносильно пристосуванню до OLS-моделі сформувати dely (t) = B1 * dely (t-1) + a (t) БЕЗ перехоплення. Встановлені значення цієї моделі, відповідно інтегровані до порядку 1, (я вважаю) дадуть вам відповідні значення моделі; [ 1-B] [AR (1)] Y (t) = a (t). Більшість фрагментів програмного забезпечення, за винятком винятку AUTOBOX, НЕ ДОБРЕВАТИ оцінювати модель AR (1) без постійної. Ось рівняння для dely = + [(1- .675B * 1)] ** - 1 [A (T)], тоді як рівняння для Y було

[(1-B * 1)] Y (T) = + [(1- .676B * 1)] ** - 1 [A (T)]. Зверніть увагу на помилку округлення, викликану фізичним розрізненням Y. Зауважте, що коли диференціювання діє (у моделі) АБО не користувач може вибрати, включити чи виключити константу чи ні. Нормальний процес полягає у включенні константи для стаціонарної (тобто невідмінної) моделі ARIMA і необов'язково включення константи, коли диференціювання є в моделі. Здається, що альтернативний підхід (Аріма) змушує постійну статичну модель, яка, на мою думку, викликала вашу дилему.


Чи повинно це впливати на встановлені значення в цьому випадку між аримою (1,0,0) на дельта-у та аримою (1,1,0) на у?
B_Miner

В обох випадках ви підходите AR (1) до першої різниці часових рядів? Якщо це так, і методи пристосування однакові, вони повинні робити саме те саме. Різниці в порядку операцій навіть немає.
Майкл Р. Черник

Здається, тут не так. Можливо, @Rob_Hyndman зареєструється.
B_Miner

1

Я не знаю, чому була б різниця в результатах, якщо якимось чином ви не розрізняєте один раз більше, ніж інший. для ARIMA (p, d, q) різниці d робляться спочатку перед встановленням будь-якої моделі. Тоді стаціонарна модель ARMA (p, q) підходить до розрізнених рядів. Припущення полягає в тому, що після усунення поліноміальних тенденцій у ряді решта рядів залишається нерухомою. Кількість відмінностей відповідає порядку того полінома, який потрібно видалити. Отже, для лінійної тенденції ви берете лише одну різницю, а для квадратичної тенденції - дві різниці. Я не згоден з більшістю того, що було сказано у відповіді Джона.


0

Однією з причин розходження серії I (1) є його нерухомість. Припускаючи, що у вас є правильна специфікація для моделі ARIMA, залишки моделі видалять авторегресивні та ковзаючі середні компоненти та повинні бути нерухомими. У цьому відношенні може мати сенс використовувати залишки для моделі, а не диференціювати. Однак, в тих випадках, коли у вас є багато даних, які, на вашу думку, є приблизно я (1), деякі люди будуть просто відрізняти дані, а не оцінювати модель ARIMA повністю. Модель ARIMA може вмістити цілу низку проблем часових рядів, де це може не мати сенсу для різниці. Наприклад, якщо дані зазнають середньої реверсії, це не завжди може бути доречним для різниці, оскільки це може бути не I (1).


Ви очікуєте, що різниці будуть такими великими? Це змусило мене думати, що я щось неправильно роблю в тому, як повертаюся від відмінностей до оригіналу.
B_Miner

Чи могли б ви пояснити, що саме робили? Я не добре читаю R-код. Якщо ви маєте однакову кількість відмінностей обох способів і підходите до тієї ж моделі ARMA після розмежування, ви повинні отримати однакові результати, доки методи підгонки однакові (зазвичай використовуються умовні найменші квадрати).
Майкл Р. Черник

Він бере деякі дані, відповідає ARIMA (1,1,0), потім бере різниці і відповідає ARIMA (1,0,0). Нарешті, він порівнює один період із вибіркових прогнозів один з одним. Імовірно, вони різні, але ми не можемо побачити графіки у публікації.
Джон

Простий приклад того, чому те, що я говорю, має сенс, якщо ви вважаєте, що . Розбіжність дає . Однак якщо ви хочете знайти , ви б не отримали однакової відповіді, якщо оцінитеy t = ( β - 1 ) y t - 1 + ϵ t ϵ tyt=βyt1+ϵtyt=(β1)yt1+ϵtϵtyt=βyt1+ϵt
Джон

1
Нарешті правильно. Я не можу зробити LaTex за 5 хвилин! Як найкраще я можу сказати, вищевказане рівняння виходить обома способами.
Майкл Р. Черник
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.