Czy w stacjonarnej serii trendów można modelować ARIMA?

12

Mam pytanie / zamieszanie dotyczące stacjonarnych serii wymaganych do modelowania za pomocą ARIMA (X). Myślę o tym bardziej w kategoriach wnioskowania (efekt interwencji), ale chciałbym wiedzieć, czy prognozowanie kontra wnioskowanie ma jakikolwiek wpływ na odpowiedź.

Pytanie:

Wszystkie wstępne materiały, które przeczytałem, stwierdzają, że seria musi być stacjonarna, co ma dla mnie sens i właśnie tam pojawia się „ja” w arimie (różnicowanie).

To, co mnie dezorientuje, to wykorzystanie trendów i dryfów w ARIMA (X) i implikacje (jeśli w ogóle) dla wymagań stacjonarnych.

Czy użycie albo stałej / znoszenia i / lub zmiennej trendu jako zmiennej egzogenicznej (tj. Dodanie „t” jako regresora) neguje wymóg stacjonarności szeregu? Czy odpowiedź różni się w zależności od tego, czy seria ma pierwiastek jednostkowy (np. Test ADF), czy trend deterministyczny, ale nie ma pierwiastka jednostkowego?

LUB

Czy seria zawsze musi być stacjonarna, wykonana przez różnicowanie i / lub zniechęcanie przed użyciem ARIMA (X)?

B_Miner
źródło

Odpowiedzi:

12

Patrząc na komentarze, wydaje się, że nie odpowiedzieliśmy na pytanie, jak wybrać trend deterministyczny lub stochastyczny. Oznacza to, jak postępować w praktyce, a nie konsekwencje lub właściwości każdego przypadku.

Jednym ze sposobów postępowania jest: Rozpocznij od zastosowania testu ADF.

  • Jeśli zerowy rdzeń jednostki zostanie odrzucony, jesteśmy skończeni. Trend (jeśli występuje) może być reprezentowany przez deterministyczny trend liniowy.
  • Jeśli zerowy test ADF nie zostanie odrzucony, wówczas stosujemy test KPSS (gdzie hipoteza zerowa jest odwrotna, stacjonarność lub stacjonarność wokół trendu liniowego).

    o Jeśli zerowa wartość testu KPSS zostanie odrzucona, wówczas dochodzimy do wniosku, że istnieje katalog główny jednostki i pracujemy z pierwszymi różnicami danych. Po pierwszych różnicach w serii możemy przetestować znaczenie innych regresorów lub wybrać model ARMA.

    o Jeśli zerowa wartość testu KPSS nie zostanie odrzucona, wówczas musielibyśmy powiedzieć, że dane nie są zbyt pouczające, ponieważ nie byliśmy w stanie odrzucić żadnej z hipotez zerowych. W takim przypadku może być bezpieczniej pracować z pierwszymi różnicami w serii.

Jak wspomniano w poprzedniej odpowiedzi, pamiętaj, że na te testy może mieć wpływ obecność wartości odstających (np. Wartość odstająca w jednym punkcie czasowym z powodu błędu podczas rejestrowania danych lub zmiany poziomu spowodowanej na przykład zmianą polityki, która wpływa na seria od określonego punktu czasowego). Dlatego wskazane jest również sprawdzenie tych problemów i powtórzenie poprzedniej analizy po uwzględnieniu regresorów dla niektórych potencjalnych wartości odstających.

javlacalle
źródło
Niesamowite! Czy moje pytanie z komentarzem powyżej było prawidłowe, jeśli widzimy coś, co wygląda jak trend, używamy testu ADF, który zawiera trend (opcja nr 3 w opublikowanym przeze mnie linku)?
B_Miner
Ostatnie pytanie - co sądzisz o sytuacji, w której dopasowujesz ARIMA, powiedz ARIMA (0,1,1) do szeregu, a średnia różnicy jest różna od zera? Oznacza to, że uważam, że dodajesz stałą do modelu - co również reprezentuje trend liniowy w oryginalnej serii. Co oznacza ta sprawa? Czy trend w oryginalnej serii jest deterministyczny, ponieważ różnicowanie serii nie usuwa trendu?
B_Miner
@B_Miner Jeśli chodzi o twój pierwszy komentarz, zacznę od włączenia tylko przechwytywania. Jeśli trend wygląda nieco wykładniczo, możesz również dodać parametr nachylenia trendu liniowego i sprawdzić, czy jest on znaczący. Zasadniczo lepiej jest zacząć od modelu z kilkoma parametrami, a jeśli diagnostyka reszt nie jest zadowalająca, rozważ dodanie innych elementów.
javlacalle
@B_Miner Biorąc pierwsze różnice, usuwa zarówno deterministyczny, jak i stochastyczny trend. Jeśli widzisz trend w szeregu różnicowym w modelu z przechwytywaniem, powinieneś rozważyć wzięcie różnic ponownie (tj. Test na pierwiastek drugiej jednostki).
javlacalle
1
@pidozaur brak zgodności między testami ADF i KPSS może wynikać z małej wielkości próby, obecności wartości odstających, tendencji nieliniowej ... jeśli po dalszym badaniu nadal nie jest jasne, który z nich jest bardziej odpowiedni, bezpieczniej jest rozważyć obecność korzenia jednostki. Szybki widok twoich danych sugeruje mi obecność trendu nieliniowego, trend kwadratowy w postaci może być odpowiedni. za1t+za2)t2)
javlacalle
5

Pamiętaj, że istnieją różne rodzaje niestacjonarności i różne sposoby radzenia sobie z nimi. Cztery typowe to:

1) Trendy deterministyczne lub stacjonarność trendów. Jeśli twoja seria jest tego rodzaju, usuń trend lub włącz trend czasowy do regresji / modelu. Być może warto sprawdzić w tym przypadku twierdzenie Frisch – Waugh – Lovell.

2) Przesunięcia poziomów i przerwy konstrukcyjne. W takim przypadku należy dołączyć zmienną fikcyjną dla każdej przerwy lub jeśli próbka jest wystarczająco długa, modeluj każdy schemat osobno.

3) Zmiana wariancji. Albo modeluj próbki osobno, albo modeluj zmieniającą się wariancję za pomocą klasy modelowania ARCH lub GARCH.

4) Jeśli twoja seria zawiera katalog główny. Zasadniczo powinieneś wtedy sprawdzić współzależne relacje między zmiennymi, ale ponieważ zajmujesz się prognozowaniem jednowymiarowym, powinieneś różnicować to raz lub dwa razy w zależności od kolejności integracji.

Aby modelować szeregi czasowe przy użyciu klasy modelowania ARIMA, odpowiednie powinny być następujące kroki:

1) Spójrz na ACF i PACF wraz z wykresem szeregów czasowych, aby zobaczyć, czy seria jest stacjonarna lub niestacjonarna.

2) Przetestuj szereg pod kątem pierwiastka jednostkowego. Można tego dokonać za pomocą szerokiego zakresu testów, z których jednymi z najczęstszych są: test ADF, test Phillipsa-Perrona (PP), test KPSS o zerowej stacjonarności lub test DF-GLS, który jest najbardziej wydajny wyżej wymienionych testów. UWAGA! Że w przypadku, gdy twoja seria zawiera pęknięcie strukturalne, testy są tendencyjne, aby nie odrzucać zera zera jednostki. Jeśli chcesz przetestować solidność tych testów i podejrzewasz jedno lub więcej pęknięć strukturalnych, powinieneś zastosować endogeniczne testy pęknięć strukturalnych. Dwa powszechne to test Zivota-Andrewsa, który pozwala na jedno endogeniczne pęknięcie strukturalne oraz Clemente-Montañés-Reyes, który pozwala na dwa pęknięcia strukturalne. Ten ostatni pozwala na dwa różne modele.

3) Jeśli w szeregu występuje pierwiastek jednostkowy, należy różnicować szereg. Następnie powinieneś przyjrzeć się ACF, PACF i wykresowi szeregów czasowych i prawdopodobnie sprawdzić, czy root drugiej jednostki jest po bezpiecznej stronie. ACF i PACF pomogą ci zdecydować, ile warunków AR i MA powinieneś uwzględniać.

4) Jeśli seria nie zawiera pierwiastka podstawowego, ale wykres szeregów czasowych i ACF pokazują, że seria ma trend deterministyczny, należy dodać trend podczas dopasowywania modelu. Niektóre osoby twierdzą, że całkowicie słuszne jest różnicowanie serii, gdy zawiera ona deterministyczny trend, chociaż informacje mogą zostać utracone w procesie. Niemniej jednak dobrym pomysłem jest różnicowanie go, aby mieć wiele warunków AR i / lub MA, które musisz uwzględnić. Ale trend czasowy jest ważny.

5) Dopasuj różne modele i wykonaj zwykłe sprawdzenie diagnostyczne, możesz użyć kryterium informacyjnego lub MSE, aby wybrać najlepszy model, biorąc pod uwagę próbkę, na której go dopasujesz.

6) Wykonaj przykładowe prognozowanie na najlepiej dopasowanych modelach i oblicz funkcje strat, takie jak MSE, MAPE, MAD, aby zobaczyć, które z nich faktycznie działają najlepiej, gdy używają ich do prognozowania, ponieważ właśnie to chcemy zrobić!

7) Wykonuj prognozy poza próbą jak szef i bądź zadowolony z wyników!

Plissken
źródło
I szybko odpowiedzieć na twoje pytanie. Tak, może.
Plissken,
Nie mogłem komentować powyższego, ponieważ nie mam wystarczającej reputacji, ale chcę podkreślić, że proces białego szumu jest stacjonarny. Jego średnia i wariancja nie zmieniają się w czasie, więc są nieruchome!
Plissken,
Dan, świetna odpowiedź! Jeśli chodzi o twój ostatni komentarz tutaj, czy mówisz, że jeśli skończysz z resztkowym białym szumem, który jest stacjonarny…, to powie ci, że odpowiednio modelowałeś serię (tj. Odpowiednio zajmowałeś się problemami stacjonarności)?
B_Miner
1
Tak, dokładnie. Często test Q Ljunga-Boxa służy do testowania resztek w celu sprawdzenia, czy są losowe. W takim przypadku model stanowi odpowiednią reprezentację danych. Coś, o czym zapomniałem wspomnieć w powyższej odpowiedzi, to również to, że po zamontowaniu modelu można spojrzeć na ACF i wykres szeregów czasowych reszt dopasowanej serii. To da ci dobre wskazanie, czy twoje pozostałości to biały szum, czy nie (ACF nie powinien mieć żadnych znacznych opóźnień). W każdym razie większość pakietów statystycznych zawiera polecenie testu Q Ljung-Boxa.
Plissken
Oto link wiki do testu Ljung-Box Q: en.wikipedia.org/wiki/Ljung%E2%80%93Box_test
Plissken
5

Określenie, czy trend (lub inny składnik, taki jak sezonowość) jest deterministyczny czy stochastyczny, jest częścią układanki w analizie szeregów czasowych. Dodam kilka punktów do tego, co zostało powiedziane.

1) Istotne jest rozróżnienie między trendami deterministycznymi a stochastycznymi, ponieważ jeśli pierwiastek jest obecny w danych (np. Losowy spacer), to statystyki testowe wykorzystywane do wnioskowania nie są zgodne z tradycyjnym rozkładem. Zobacz ten post, aby uzyskać szczegółowe informacje i odniesienia.

Możemy symulować losowy spacer (trend stochastyczny, w którym należy wziąć pierwsze różnice), przetestować istotność trendu deterministycznego i zobaczyć procent przypadków, w których zerowa wartość trendu deterministycznego jest odrzucana. W R możemy wykonać:

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

Na poziomie istotności 5% spodziewalibyśmy się odrzucić zero w 95% przypadków, jednak w tym eksperymencie został on odrzucony tylko w ~ 89% przypadków z 10 000 symulowanych losowych spacerów.

Możemy zastosować testy root root, aby sprawdzić, czy root root jest obecny. Musimy jednak pamiętać, że trend liniowy może z kolei prowadzić do odrzucenia zerowej wartości pierwiastka jednostkowego. Aby temu zaradzić, test KPSS uwzględnia zerową stacjonarność wokół trendu liniowego.

2) Kolejną kwestią jest interpretacja deterministycznych składników w procesie w poziomach lub pierwszych różnicach. Efekt przechwycenia nie jest taki sam w modelu z trendem liniowym, jak w przypadkowym marszu. Zobacz ten post jako ilustrację.

yt=μ+yt-1+ϵt,ϵtN.jare(0,σ2)).

yt-jayt

yt=μ+yt-1μ+yt-2)+ϵt-1+ϵt=2)μ+yt-2)μ+yt-3)+ϵt-2)+ϵt-1+ϵt=3)μ+yt-3)+ϵt-2)+ϵt-1+ϵt...

Dojeżdżamy do:

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

y0μμμ

Jeśli graficzna reprezentacja szeregu pokazuje względnie wyraźny trend liniowy, nie możemy być pewni, czy wynika to z obecności deterministycznego trendu liniowego, czy z dryftu w procesie chodzenia losowego. Należy zastosować komplementarną grafikę i statystyki testów.

Należy pamiętać o kilku zastrzeżeniach, ponieważ analiza oparta na rdzeniu jednostki i innych statystykach testu nie jest niezawodna. Na niektóre z tych testów może mieć wpływ obecność obserwacji odległych lub przesunięć poziomów i wymagać wyboru kolejności opóźnień, co nie zawsze jest proste.

Aby obejść tę zagadkę, uważam, że powszechną praktyką jest przyjmowanie różnic w danych, dopóki seria nie będzie wyglądać nieruchomo (na przykład patrząc na funkcję autokorelacji, która powinna szybko zerować), a następnie wybrać model ARMA.

javlacalle
źródło
Greta post - z pewnością jesteś wielkim atutem tej strony! Byłem ciekawy, patrząc tutaj i na twoje inne posty - czy można użyć testu ADF lub KPSS, aby ustalić, czy trend w serii poziomów jest deterministyczny czy stochastyczny? Znalazłem to: faculty.smu.edu/tfomby/eco6375/BJ%20Notes/ADF%20Notes.pdf, co sprawia, że ​​wygląda to tak, jakbyś widział trend w serii, użyj opcji nr 3 testu i jeśli nie odrzucisz zero, masz dowody na deterministyczny trend.
B_Miner
Na podstawie komentarza Dana, sądzę, że jeśli dostaniesz resztki białego szumu, nic z tego nie ma znaczenia :)
B_Miner
5

Bardzo interesujące pytanie, chciałbym również wiedzieć, co mają do powiedzenia inni. Z wykształcenia jestem inżynierem, a nie statystykiem, więc ktoś może sprawdzić moją logikę. Jako inżynierowie chcielibyśmy symulować i eksperymentować, więc zmotywowałem się do symulacji i przetestowania twojego pytania.

Jak pokazano poniżej empirycznie, użycie zmiennej trendu w ARIMAX neguje potrzebę różnicowania i powoduje, że trend szeregowy jest nieruchomy. Oto logika, której użyłem do weryfikacji.

  1. Symulowany proces AR
  2. Dodano trend deterministyczny
  3. Wykorzystanie ARIMAX modelowanego trendem jako zmiennej egzogenicznej powyższej serii bez różnicowania.
  4. Sprawdzono resztki pod kątem białego szumu i jest to czysto losowy

Poniżej znajduje się kod R i wykresy:

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) Symulacja wykresu wprowadź opis zdjęcia tutaj

AR (1) z trendem deterministycznym wprowadź opis zdjęcia tutaj

ARIMAX Resztkowy PACF z tendencją jako egzogenną. Residulas są losowe, bez pozostawionego wzoru wprowadź opis zdjęcia tutaj

Jak widać powyżej, modelowanie trendu deterministycznego jako zmiennej egzogenicznej w modelu ARIMAX eliminuje potrzebę różnicowania. Przynajmniej w przypadku deterministycznym działało. Zastanawiam się, jak to by się zachowało z tendencją stochastyczną, którą bardzo trudno przewidzieć lub modelować.

Aby odpowiedzieć na drugie pytanie, TAK, wszystkie ARIMA, w tym ARIMAX, muszą stać na miejscu. Przynajmniej tak mówią podręczniki.

Ponadto, jak skomentowano, zobacz ten artykuł . Bardzo jasne wyjaśnienie trendu deterministycznego vs. trendu stochastycznego i sposobu ich usunięcia, aby stał się trendem stacjonarnym, a także bardzo ładne badanie literatury na ten temat. Używają go w kontekście sieci neuronowej, ale jest to przydatne w przypadku ogólnego problemu szeregów czasowych. Ich ostatecznym zaleceniem jest, gdy jest wyraźnie zidentyfikowany jako trend deterministyczny, zniechęcanie liniowe, w przeciwnym razie zastosuj różnicowanie, aby uszeregować szeregi czasowe. Jury wciąż tam jest, ale większość badaczy cytowanych w tym artykule zaleca różnicowanie zamiast linearnego zniechęcania.

Edytować:

Poniżej znajduje się losowy spacer z procesem stochastycznym z wykorzystaniem dryfu, z wykorzystaniem zmiennych egzogenicznych i różnic. Oba wydają się dawać tę samą odpowiedź iw istocie są takie same.

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

Mam nadzieję że to pomoże!

Synoptyk
źródło
Interesują mnie też inne poglądy - nie jestem pewien, czy pozostałość będąca białym szumem spełnia wymagania, aby seria była stacjonarna - tj. Jeśli osiągniesz biały szum, czy możesz być zadowolony? Czy też włączenie zmiennej egzogenicznej faktycznie działa w celu „odwrócenia trendu” i sprawia, że ​​ta seria jest stacjonarna? Zastanawiam się, czy sprawdzenie tego późniejszego pytania dotyczy tego, czy otrzymujesz ten sam model (współczynnik ar1 itp.), Jeśli usuniesz trend z regresją liniową, a następnie dopasujesz arimę (1,0,0) ... Zrobiłem to i wyniki są bliskie. Może więc dodanie zmiennej egzogenicznej jest tym samym, co rezygnacja.
B_Miner
Tak, to samo, kilka miesięcy temu natknąłem się na to w artykule dotyczącym prognozowania sieci neuronowej. Dostarczę referencję, jeśli ją znajdę.
prezenter
Masz jakieś pojęcie na temat przypadku, gdy istnieje korzeń jednostki lub gdy jest stała w modelu?
B_Miner
Zaktualizowałem odpowiedź w artykule, do którego się odnosiłem.
prezenter
Myślę, że nie uratowałeś go.
B_Miner