Różnice szeregów czasowych przed Arimą lub w Arimie

13

Czy lepiej jest różnicować serię (zakładając, że jej potrzebuje) przed użyciem Arima LUB lepiej użyć parametru d w Arimie?

Byłem zaskoczony, jak różne są dopasowane wartości w zależności od tego, którą trasę wybrał ten sam model i dane. Czy robię coś niepoprawnie?

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")

DODAJ:

Uwaga: raz różnicuję serię i dopasowuję arimę (1,0,0), a następnie dopasowuję arimę (1,1,0) do oryginalnej serii. Jestem (myślę) odwracając różnicowanie dopasowanych wartości dla arimów (1,0,0) w pliku różnicowym.

Porównuję dopasowane wartości - nie prognozy.

Oto wykres (czerwony to arima (1,1,0), a niebieski to arima (1,0,0) w różnej serii po powrocie do oryginalnej skali):

wprowadź opis zdjęcia tutaj

Odpowiedź na odpowiedź dr Hyndmana:

1) Czy możesz zilustrować w kodzie R, co powinienem zrobić, aby dopasować dwie dopasowane wartości (i przypuszczalnie prognozy) do siebie (uwzględniając niewielką różnicę wynikającą z pierwszego punktu odpowiedzi) między Arimą (1,1, 0) i Arima (1,0,0) w ręcznie różnicowanych seriach? Zakładam, że ma to związek z tym, że środek nie został uwzględniony w modA, ale nie jestem całkowicie pewien, jak postępować.

X^t=Xt-1+ϕ(Xt-1-Xt-2))Y^t=ϕ(Xt-1-Xt-2))Y^tX^t-Xt-1? Czy mówisz, że „nie rozróżniam” niepoprawnie?

B_Miner
źródło
1
Jeśli chodzi o twoją aktualizację. 1) Nie widzę w tym sensu. Arima () wygeneruje dopasowane wartości i prognozy. Dlaczego powinienem wygenerować dodatkowy kod R, aby zrobić to samo, co już robi Arima ()? 2) Tak, ale różnicowanie X-hat nie daje Y-hat. Tak więc niezróżnicowanie Y-hat nie daje ci X-hat.
Rob Hyndman
2
Dzięki. 1) Było dla mnie ćwiczeniem edukacyjnym. 2) Mój błąd w obliczeniach w moim pierwotnym pytaniu (przy użyciu diffinv) polegał na użyciu dopasowanych wartości, a nie na oryginalnym, co myślę, że otrzymuję z tego. (?) ... co prowadzi do # 1, jak poprawić niezróżnicowanie danych. Wiem, że Arima to zrobi, próbując pójść za przykładem książki za pomocą równań.
B_Miner

Odpowiedzi:

14

Jest tu kilka problemów.

  1. Jeśli najpierw różnicę, Arima()dopasujesz model do zróżnicowanych danych. Jeśli zezwolisz Arima()na różnicowanie w ramach procedury szacowania, użyje on rozproszonego przed inicjalizacją. Wyjaśniono to w pliku pomocy dla arima(). Tak więc wyniki będą różne ze względu na różne sposoby obsługi wstępnej obserwacji. Nie sądzę, żeby miało to duże znaczenie pod względem jakości oszacowania. Znacznie łatwiej jest jednak pozwolić Arima()na różnicowanie, jeśli chcesz prognoz lub dopasować wartości do oryginalnych (niezróżnicowanych) danych.

  2. modBmodAArima()re=0re>0include.mean

  3. X^t=Xt-1+ϕ(Xt-1-Xt-2))
    Y^t=ϕ(Xt-1-Xt-2))
    {Xt}{Yt}
    X^t-X^t-1Y^t.
Rob Hyndman
źródło
1
+1, chciałem dać w odpowiedzi 2 punkty.
Wyrazy uznania
Dr Hyndman, dziękuję za odpowiedź! Mam DUŻO do nauczenia się o analizie szeregów czasowych. Czy mogę poprosić o kontynuację? Nie jestem pewien, czy dokładnie wiem, co zrobić z tymi informacjami, dlatego zamieszczam odpowiedź na moje oryginalne pytanie.
B_Miner
2

Czasami musisz usunąć środki lokalne, aby seria stała się nieruchoma. Jeśli oryginalna seria ma acf, który nie wymiera, może to wynikać z przesunięcia poziomu / kroku w serii. Lekarstwem jest oznaczenie serii.

ODPOWIEDŹ NA BOUNTY:

Sposobem na uzyskanie takich samych wyników / dopasowanych wartości jest fizyczne różnicowanie serii pierwotnej (Y (t) w celu uzyskania pierwszej różnicy (dely), oszacowanie AR (1) bez stałej. Jest to równoznaczne z dopasowaniem modelu OLS form dely (t) = B1 * dely (t-1) + a (t) BEZ punktu przecięcia Dopasowane wartości z tego modelu, odpowiednio zintegrowane z rzędu 1, (jak sądzę) dadzą ci dopasowane wartości modelu; [ 1-B] [AR (1)] Y (t) = a (t). Większość programów, z zaznaczonym wyjątkiem AUTOBOX, NIE POZWALA oszacować modelu AR (1) bez stałej. Oto równanie dla dely = + [(1- .675B * 1)] ** - 1 [A (T)], podczas gdy równanie dla Y było

[(1-B * 1)] Y (T) = + [(1- .676B * 1)] ** - 1 [A (T)]. Zwróć uwagę na błąd zaokrąglania spowodowany fizycznym różnicowaniem Y. Zauważ, że gdy obowiązuje różnicowanie (w modelu) LUB nie, użytkownik może wybrać, czy ma być uwzględniona, czy też wykluczona stała. Normalnym procesem jest uwzględnienie stałej dla stacjonarnego (tj. Niezróżnicowanego) modelu ARIMA i opcjonalnie włączenie stałej, gdy w modelu występuje różnicowanie. Wygląda na to, że alternatywne podejście (Arima) zmusza stałą do modelu stacjonarnego, co moim zdaniem spowodowało twój dylemat.

IrishStat
źródło
Czy powinno to wpłynąć na dopasowane wartości w tym przypadku między arimą (1,0,0) na delcie y i arimą (1,1,0) na y?
B_Miner
W obu przypadkach dopasowujesz AR (1) do pierwszej różnicy szeregów czasowych, prawda? Jeśli tak jest, a metody dopasowania są takie same, powinny robić dokładnie to samo. Nie ma nawet różnicy w kolejności operacji.
Michael R. Chernick
Wydaje się, że tak nie jest. Być może @Rob_Hyndman zamelduje się.
B_Miner
1

Nie wiem, dlaczego byłyby różnice w wynikach, chyba że w jakiś sposób różnicujesz więcej razy w jedną stronę niż w drugą. dla ARIMA (p, d, q) różnice d są wykonywane najpierw przed dopasowaniem modelu. Następnie model stacjonarny ARMA (p, q) jest dopasowany do zróżnicowanej serii. Zakłada się, że po usunięciu trendów wielomianowych w szeregu pozostałe szeregi są nieruchome. Liczba różnic odpowiada kolejności wielomianu, który chcesz usunąć. Tak więc dla trendu liniowego bierzesz tylko jedną różnicę, dla trendu kwadratowego bierzesz dwie różnice. Nie zgadzam się z większością tego, co zostało powiedziane w odpowiedzi Johna.

Michael R. Chernick
źródło
0

Jednym z powodów różnicowania serii I (1) jest unieruchomienie jej. Zakładając, że masz poprawną specyfikację dla modelu ARIMA, reszty modelu będą miały usunięte komponenty autoregresyjne i średniej ruchomej i powinny być nieruchome. Pod tym względem sensowne może być użycie reszt do modelu, a nie różnicowanie. Jednak w okolicznościach, w których masz dużo danych, które Twoim zdaniem są w przybliżeniu I (1), niektóre osoby po prostu różnicują dane, a nie oceniają całkowicie model ARIMA. Model ARIMA może pasować do wielu problemów z szeregami czasowymi, w których różnicowanie może nie mieć sensu. Na przykład, jeśli dane ulegają odwróceniu średniego, może to nie zawsze być właściwe dla różnicy, ponieważ może to nie być I (1).

Jan
źródło
Czy spodziewałbyś się, że różnice będą tak duże? To sprawiło, że pomyślałem, że robiłem coś niepoprawnie, gdy wracałem z różnic do oryginału.
B_Miner
Czy mógłbyś dokładnie wyjaśnić, co zrobiłeś? Nie jestem dobry w czytaniu kodu R. Jeśli weźmiesz tę samą liczbę różnic w obie strony i dopasujesz ten sam model ARMA po różnicowaniu, powinieneś uzyskać te same wyniki, o ile techniki dopasowania są takie same (zwykle stosuje się warunkowe najmniejsze kwadraty).
Michael R. Chernick
Bierze trochę danych, pasuje do ARIMA (1,1,0), a następnie bierze różnice i pasuje do ARIMA (1,0,0). Na koniec porównuje jeden okres z przykładowych prognoz do siebie. Prawdopodobnie są różne, ale nie widzimy wykresów w poście.
John
yt=βyt-1+ϵtyt=(β-1)yt-1+ϵtϵtyt=βyt-1+ϵt
John
1
Wreszcie racja. Nie mogę zrobić LaTex w 5 minut! Jak mogę najlepiej powiedzieć, powyższe równanie wychodzi na dwa sposoby.
Michael R. Chernick,