Разница временного ряда до Аримы или внутри Аримы


13

Лучше ли различать ряды (если это необходимо) перед использованием Arima ИЛИ лучше использовать параметр 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 то, что мне нужно сделать, чтобы привести в соответствие два согласованных значения (и предположительно прогноза) (учитывая небольшую разницу из-за вашего первого пункта в вашем ответе) между Arima (1,1, 0) и Арима (1,0,0) на серию с ручным дифференцированием? Я предполагаю, что это связано со значением, не включенным в modA, но я не совсем уверен, как поступить.

2) Относительно вашего # 3. Я знаю, что мне не хватает очевидного, но это не и то же самое, когда определяется как ? Вы говорите, что я "недифференцирован" неправильно?X^t=Xt1+ϕ(Xt1Xt2)Y^t=ϕ(Xt1Xt2)Y^tX^tXt1


1
По поводу вашего обновления. 1) Я не вижу смысла в этом. Arima () выдаст подходящие значения и прогнозы. Почему я должен создавать дополнительный R-код, чтобы сделать то же самое, что Arima () уже делает? 2) Да, но различие X-hat не дает вам Y-hat. Так что недифференцированная Y-hat не дает вам X-hat.
Роб Хиндман

2
Благодарю. 1) Для меня было учебным упражнением. 2) Моя ошибка в вычислениях в моем первоначальном вопросе (с использованием diffinv) заключалась в использовании подгоночных значений, а не оригинал - это то, что я думаю, что я получаю из этого. (?) ... что приводит к # 1 того, как правильно Различать данные. Я знаю, что Арима сделает это, просто пытаясь следовать примеру книги, используя уравнения.
B_Miner

Ответы:


14

Здесь есть несколько вопросов.

  1. Если вы сначала отличите, то Arima()подгоните модель к разным данным. Если вы разрешите Arima()делать различие как часть процедуры оценки, он будет использовать diffuse для инициализации. Это объясняется в файле справки для 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

Иногда вам нужно удалить местные средства, чтобы сделать серию стационарной. Если у оригинальной серии есть акф, который не вымирает, это может быть из-за сдвига уровня / шага в серии. Средство правовой защиты состоит в том, чтобы обесценить серию.

ОТВЕТ НА БАНТИ:

Способ получить те же результаты / подогнанные значения состоит в том, чтобы после физического разграничения оригинального (Y (t) ряда, чтобы получить первое различие (dely), оценить AR (1) без константы. Это равносильно подгонке модели OLS form 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, для остатков модели будут удалены авторегрессионные и скользящие средние компоненты, и они должны быть стационарными. В этом отношении может иметь смысл использовать остатки в модели, а не дифференцировать. Однако в обстоятельствах, когда у вас есть много данных, которые, по вашему мнению, приблизительно равны I (1), некоторые люди просто будут отличать данные, а не полностью оценивать модель ARIMA. Модель ARIMA может соответствовать целому ряду проблем временных рядов, в которых нет разницы. Например, если данные испытывают среднее обращение, это может не всегда соответствовать разнице, поскольку это может быть не I (1).


Вы ожидаете, что различия будут такими большими? Это заставило меня думать, что я делал что-то неправильно в том, как я возвращался от различий к оригиналу.
B_Miner

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

Он берет некоторые данные, подходит к ARIMA (1,1,0), затем берет различия и подходит к ARIMA (1,0,0). Наконец, он сравнивает один период из выборочных прогнозов друг с другом. Предположительно они разные, но мы не можем видеть графики в посте.
Джон

Простой пример того, почему то, что я говорю, имеет смысл, если вы рассмотрите . Взятие различий дает . Однако, если вы хотите найти , вы не получите тот же ответ, еслиy t = ( β - 1 ) y t - 1 + ϵ t ϵ ty t = β y t - 1 + ϵ tyt=βyt1+ϵtyt=(β1)yt1+ϵtϵtyt=βyt1+ϵt
Джон

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