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):
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ć.
? Czy mówisz, że „nie rozróżniam” niepoprawnie?
źródło
Odpowiedzi:
Jest tu kilka problemów.
Jeśli najpierw różnicę,
Arima()
dopasujesz model do zróżnicowanych danych. Jeśli zezwoliszArima()
na różnicowanie w ramach procedury szacowania, użyje on rozproszonego przed inicjalizacją. Wyjaśniono to w pliku pomocy dlaarima()
. 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.modB
modA
Arima()
include.mean
źródło
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.
źródło
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.
źródło
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).
źródło