Kann mit ARIMA eine trendstationäre Serie modelliert werden?

12

Ich habe eine Frage / Verwirrung über stationäre Reihen, die für die Modellierung mit ARIMA (X) benötigt werden. Ich denke darüber mehr in Bezug auf die Schlussfolgerung (Wirkung einer Intervention) nach, möchte aber wissen, ob Prognose und Schlussfolgerung einen Unterschied in der Reaktion bewirken.

Frage:

Alle einleitenden Ressourcen, die ich gelesen habe, besagen, dass die Serie stationär sein muss, was für mich sinnvoll ist und wo das "Ich" in arima (differenzierend) ankommt.

Was mich verwirrt, ist die Verwendung von Trends und Abweichungen in ARIMA (X) und die möglichen Auswirkungen auf stationäre Anforderungen.

Negiert die Verwendung eines konstanten / Drift-Terms und / oder einer Trendvariablen als exogene Variable (dh das Hinzufügen von 't' als Regressor) die Anforderung, dass die Reihe stationär ist? Ist die Antwort unterschiedlich, abhängig davon, ob die Serie eine Einheitswurzel (z. B. adf-Test) oder einen deterministischen Trend, aber keine Einheitswurzel hat?

ODER

Muss eine Serie vor der Verwendung von ARIMA (X) immer stationär sein, also durch Differenzieren und / oder Trennen?

B_Miner
quelle

Antworten:

12

In den Kommentaren scheint es, dass wir uns nicht mit der Frage befasst haben, wie man zwischen einem deterministischen oder einem stochastischen Trend wählt. Das heißt, wie in der Praxis vorzugehen ist, anstatt die Konsequenzen oder Eigenschaften jedes Einzelfalls zu berücksichtigen.

Sie können folgendermaßen vorgehen: Wenden Sie zunächst den ADF-Test an.

  • Wenn die Null einer Einheitswurzel abgelehnt wird, sind wir fertig. Der Trend (falls vorhanden) kann durch einen deterministischen linearen Trend dargestellt werden.
  • Wenn die Null des ADF-Tests nicht abgelehnt wird, wenden wir den KPSS-Test an (wobei die Nullhypothese das Gegenteil ist, Stationarität oder Stationarität um einen linearen Trend).

    o Wenn die Null des KPSS-Tests abgelehnt wird, schließen wir, dass es eine Einheitswurzel gibt, und arbeiten mit den ersten Unterschieden der Daten. Bei den ersten Unterschieden der Reihe können wir die Bedeutung anderer Regressoren testen oder ein ARMA-Modell auswählen.

    o Wenn die Null des KPSS-Tests nicht abgelehnt wird, müssen wir sagen, dass die Daten nicht sehr aussagekräftig sind, da wir keine der Nullhypothesen ablehnen konnten. In diesem Fall kann es sicherer sein, mit den ersten Unterschieden der Serie zu arbeiten.

Denken Sie daran, dass diese Tests, wie in einer vorherigen Antwort erwähnt, durch Ausreißer beeinflusst werden können (z. B. ein Ausreißer zu einem bestimmten Zeitpunkt aufgrund eines Fehlers beim Aufzeichnen der Daten oder einer Pegelverschiebung, die z Serien ab einem bestimmten Zeitpunkt). Daher ist es ratsam, auch diese Probleme zu überprüfen und die vorherige Analyse zu wiederholen, nachdem für einige potenzielle Ausreißer Regressoren einbezogen wurden.

javlacalle
quelle
Genial! War meine obige Kommentarfrage richtig, dass wir, wenn wir sehen, wie ein Trend aussieht, den ADF-Test verwenden, der einen Trend enthält (Option 3 in dem von mir geposteten Link)?
B_Miner
Letzte Frage - Was halten Sie von der Situation, in der Sie eine ARIMA einsetzen, z. B. ARIMA (0,1,1) für eine Serie, und der Mittelwert der Differenz ungleich Null ist? Das heißt, ich glaube, dass Sie dem Modell eine Konstante hinzufügen - was auch einen linearen Trend in der Originalserie darstellt. Was bedeutet dieser Fall? Ist der Trend in der ursprünglichen Serie deterministisch, weil die Differenzierung der Serie den Trend nicht beseitigt hat?
B_Miner
@B_Miner In Bezug auf Ihren ersten Kommentar würde ich zunächst nur einen Abschnitt einfügen. Wenn der Trend etwas exponentiell aussieht, können Sie auch den Steigungsparameter des linearen Trends hinzufügen und prüfen, ob er signifikant ist. Im Allgemeinen ist es besser, mit einem Modell mit wenigen Parametern zu beginnen. Wenn die Diagnose der Residuen nicht zufriedenstellend ist, sollten Sie weitere Elemente hinzufügen.
Javlacalle
@B_Miner Erste Differenzen entfernen sowohl einen deterministischen als auch einen stochastischen Trend. Wenn Sie in einem Modell mit Achsenabschnitt einen Trend in der differenzierten Reihe sehen, sollten Sie überlegen, die Differenzen erneut zu erfassen (dh auf eine zweite Einheitswurzel zu testen).
Javlacalle
1
a1t+a2t2
5

Denken Sie daran, dass es verschiedene Arten der Nichtstationarität und unterschiedliche Arten des Umgangs mit ihnen gibt. Vier gebräuchliche sind:

1) Deterministische Trends oder Trendstationarität. Wenn es sich bei Ihrer Serie um eine solche Serie handelt, können Sie diese de-trendieren oder einen Zeittrend in die Regression / das Modell aufnehmen. Vielleicht möchten Sie den Frisch-Waugh-Lovell-Satz zu diesem Thema lesen.

2) Ebenenverschiebungen und Strukturbrüche. Wenn dies der Fall ist, sollten Sie für jede Pause eine Dummy-Variable einfügen, oder wenn Ihre Stichprobe lang genug ist, modellieren Sie jedes Regime separat.

3) Varianz ändern. Modellieren Sie die Stichproben entweder separat oder modellieren Sie die sich ändernde Varianz mit der Modellierungsklasse ARCH oder GARCH.

4) Wenn Ihre Serie eine Einheitswurzel enthält. Im Allgemeinen sollten Sie dann prüfen, ob die Beziehungen zwischen den Variablen zusammenwachsen. Da Sie sich jedoch mit univariaten Prognosen befassen, sollten Sie je nach Integrationsreihenfolge ein- oder zweimal differenzieren.

Um eine Zeitreihe mit der ARIMA-Modellierungsklasse zu modellieren, sollten die folgenden Schritte angemessen sein:

1) Betrachten Sie den ACF und den PACF zusammen mit einer Zeitreihendarstellung, um festzustellen, ob die Reihe stationär oder instationär ist.

2) Testen Sie die Serie auf eine Einheitswurzel. Dies kann mit einer Vielzahl von Tests durchgeführt werden, von denen einige am häufigsten der ADF-Test, der Phillips-Perron-Test (PP), der KPSS-Test mit dem Nullwert der Stationarität oder der DF-GLS-Test sind, der am effizientesten ist der oben genannten Tests. HINWEIS! Wenn Ihre Serie einen Strukturbruch enthält, werden diese Tests darauf ausgerichtet, die Null einer Einheitswurzel nicht abzulehnen. Wenn Sie die Robustheit dieser Tests testen möchten und einen oder mehrere Strukturbrüche vermuten, sollten Sie endogene Strukturbruchtests verwenden. Zwei gebräuchliche sind der Zivot-Andrews-Test, bei dem ein endogener Strukturbruch möglich ist, und der Clemente-Montañés-Reyes-Test, bei dem zwei Strukturbrüche möglich sind. Letzteres ermöglicht zwei verschiedene Modelle.

3) Wenn es eine Einheitswurzel in der Reihe gibt, sollten Sie die Reihe unterscheiden. Anschließend sollten Sie die ACF-, PACF- und Zeitreihendiagramme durchsehen und sicherheitshalber nach einer zweiten Einheitenwurzel suchen. Das ACF und das PACF helfen Ihnen bei der Entscheidung, wie viele AR- und MA-Begriffe Sie aufnehmen sollten.

4) Wenn die Serie keine Einheitswurzel enthält, aber das Zeitreihendiagramm und die ACF zeigen, dass die Serie einen deterministischen Trend aufweist, sollten Sie beim Anpassen des Modells einen Trend hinzufügen. Einige Leute argumentieren, dass es völlig richtig ist, die Reihe nur zu unterscheiden, wenn sie einen deterministischen Trend enthält, obwohl dabei Informationen verloren gehen können. Trotzdem ist es eine gute Idee, einen Unterschied zu machen, um zu sehen, wie viele AR- und / oder MA-Begriffe Sie aufnehmen müssen. Ein zeitlicher Trend ist jedoch gültig.

5) Passen Sie die verschiedenen Modelle an und führen Sie die üblichen diagnostischen Überprüfungen durch. Möglicherweise möchten Sie ein Informationskriterium oder die MSE verwenden, um das beste Modell für die Probe auszuwählen, auf die Sie es passen.

6) Machen Sie eine Stichprobenprognose für die am besten geeigneten Modelle und berechnen Sie Verlustfunktionen wie MSE, MAPE, MAD, um festzustellen, welche von ihnen bei der Prognose die beste Leistung erbringen, denn das möchten wir tun!

7) Machen Sie Ihre Out-of-Sample-Prognosen wie ein Boss und freuen Sie sich über Ihre Ergebnisse!

Plissken
quelle
Und um Ihre Frage schnell zu beantworten. Ja, kann es.
Plissken
Ich durfte das nicht kommentieren, da ich nicht genug Reputation habe, aber ich möchte darauf hinweisen, dass ein Prozess mit weißem Rauschen stationär ist. Sein Mittelwert und seine Varianz ändern sich nicht im Laufe der Zeit, so dass er stationär ist!
Plissken
Dan, tolle Antwort! Bezüglich Ihres letzten Kommentars hier sagen Sie, dass wenn Sie am Ende einen weißen Rauschrest haben, der stationär ist ... dann heißt das, dass Sie die Serie angemessen modelliert haben (dh mit Problemen der Stationarität richtig / angemessen umgegangen sind)?
B_Miner
1
Ja genau. Oft wird der Ljung-Box Q-Test verwendet, um die Residuen zu testen, um festzustellen, ob sie zufällig sind oder nicht. In diesem Fall ist das Modell eine adäquate Darstellung der Daten. Was ich in der obigen Antwort vergessen habe, ist, dass Sie sich nach dem Anpassen des Modells die ACF- und Zeitreihendiagramme der Residuen der angepassten Reihen ansehen können. Dies gibt Ihnen einen guten Hinweis darauf, ob Ihre Residuen weißes Rauschen sind oder nicht (der ACF sollte keine signifikanten Verzögerungen aufweisen). Auf jeden Fall haben die meisten Statistikpakete einen Befehl für den Ljung-Box Q-Test.
Plissken
Hier ist der Wiki-Link für den Ljung-Box Q-Test: de.wikipedia.org/wiki/Ljung%E2%80%93Box_test
Plissken
5

Die Bestimmung, ob der Trend (oder eine andere Komponente wie die Saisonalität) deterministisch oder stochastisch ist, ist Teil des Puzzles in der Zeitreihenanalyse. Ich werde ein paar Punkte zu dem hinzufügen, was gesagt wurde.

1) Die Unterscheidung zwischen deterministischen und stochastischen Trends ist wichtig, da dann, wenn eine Einheitswurzel in den Daten vorhanden ist (z. B. ein Zufallslauf), die für die Inferenz verwendeten Teststatistiken nicht der traditionellen Verteilung folgen. In diesem Beitrag finden Sie einige Details und Verweise.

Wir können einen zufälligen Gang simulieren (stochastischer Trend, bei dem die ersten Differenzen genommen werden sollten), die Signifikanz des deterministischen Trends testen und den Prozentsatz der Fälle ermitteln, in denen die Null des deterministischen Trends verworfen wird. In R können wir tun:

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

Bei einem Signifikanzniveau von 5% würden wir davon ausgehen, dass die Null in 95% der Fälle abgelehnt wird. In diesem Experiment wurde sie jedoch nur in ~ 89% der Fälle von 10.000 simulierten zufälligen Wanderungen abgelehnt.

Wir können Unit-Root-Tests anwenden , um zu testen, ob eine Unit-Root vorhanden ist. Wir müssen uns jedoch darüber im Klaren sein, dass ein linearer Trend wiederum dazu führen kann, dass die Null einer Einheitswurzel nicht zurückgewiesen wird. Um dies zu bewältigen, betrachtet der KPSS-Test den Nullpunkt der Stationarität um einen linearen Trend.

2) Ein weiteres Thema ist die Interpretation der deterministischen Komponenten in einem Prozess in Ebenen oder ersten Unterschieden. Der Effekt eines Abschnitts ist in einem Modell mit linearem Trend nicht der gleiche wie in einem zufälligen Schritt. Siehe diesen Beitrag zur Veranschaulichung.

yt=μ+yt1+ϵt,ϵtNID(0,σ2).

ytiyt

yt=μ+yt1μ+yt2+ϵt1+ϵt=2μ+yt2μ+yt3+ϵt2+ϵt1+ϵt=3μ+yt3+ϵt2+ϵt1+ϵt...

Wir kommen zu:

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

y0μμμ

Wenn die grafische Darstellung einer Reihe einen relativ deutlichen linearen Trend zeigt, können wir nicht sicher sein, ob dies auf das Vorhandensein eines deterministischen linearen Trends oder auf eine Drift in einem Zufallswandlungsprozess zurückzuführen ist. Ergänzende Grafiken und Teststatistiken sollten angewendet werden.

Es sind einige Vorsichtsmaßnahmen zu beachten, da eine Analyse auf der Basis der Einheitenwurzel und anderer Teststatistiken nicht narrensicher ist. Einige dieser Tests können durch abweichende Beobachtungen oder Pegelverschiebungen beeinflusst werden und erfordern die Auswahl einer Verzögerungsreihenfolge, die nicht immer einfach ist.

Als Problemumgehung für dieses Rätsel halte ich es für gängige Praxis, Datenunterschiede zu erfassen, bis die Reihe stationär aussieht (z. B. die Autokorrelationsfunktion, die schnell auf Null gehen sollte), und dann ein ARMA-Modell auszuwählen.

javlacalle
quelle
Greta post- Sie sind eindeutig eine Bereicherung für diese Site! Ich war neugierig, als ich mich hier und in Ihren anderen Beiträgen umgesehen habe. Ist es möglich, mithilfe eines ADF- oder KPSS-Tests festzustellen, ob ein Trend in der Reihe der Ebenen deterministisch oder stochastisch ist? Ich habe Folgendes gefunden: faculty.smu.edu/tfomby/eco6375/BJ%20Notes/ADF%20Notes.pdf. Wenn Sie also einen Trend in der Serie sehen, verwenden Sie Option 3 des Tests und lehnen Sie ihn nicht ab die Null, Sie haben Beweise für einen deterministischen Trend.
B_Miner
Basierend auf Dans Kommentar, denke ich, wenn Sie Reste von weißem Rauschen erhalten, ist nichts davon von Bedeutung :)
B_Miner
5

Sehr interessante Frage, ich würde auch gerne wissen, was andere zu sagen haben. Ich bin ausgebildeter Ingenieur und kein Statistiker, daher kann jemand meine Logik überprüfen. Da wir als Ingenieure gerne simulieren und experimentieren würden, war ich motiviert, Ihre Frage zu simulieren und zu testen.

Wie im Folgenden empirisch gezeigt, hat die Verwendung einer Trendvariablen in ARIMAX die Differenzierung aufgehoben und den Serientrend stationär gemacht. Hier ist die Logik, die ich verwendet habe, um zu überprüfen.

  1. Einen AR-Prozess simuliert
  2. Ein deterministischer Trend wurde hinzugefügt
  3. Unter Verwendung von ARIMAX modelliert mit trend als exogene Variable die obige Reihe ohne Differenzierung.
  4. Überprüfte die Reste auf weißes Rauschen und es ist rein zufällig

Unten ist der R-Code und die Zeichnungen:

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) Simulierter Plot Bildbeschreibung hier eingeben

AR (1) mit deterministischem Trend Bildbeschreibung hier eingeben

ARIMAX Residual PACF mit Trend als exogen. Residulas sind zufällig und haben kein Muster mehr Bildbeschreibung hier eingeben

Wie oben zu sehen ist, macht die Modellierung des deterministischen Trends als exogene Variable im ARIMAX-Modell eine Differenzierung überflüssig. Zumindest im deterministischen Fall hat es funktioniert. Ich frage mich, wie sich dies bei stochastischen Trends verhalten würde, die sich nur schwer vorhersagen oder modellieren lassen.

Um Ihre zweite Frage zu beantworten, müssen JA alle ARIMA einschließlich ARIMAX stationär gemacht werden. Zumindest sagen das Lehrbücher.

Außerdem finden Sie in diesem Artikel kommentiert . Sehr klare Erklärung zu deterministischem Trend vs. stochastischem Trend und wie man sie entfernt, um den Trend stationär zu machen, sowie eine sehr schöne Literaturübersicht zu diesem Thema. Sie verwenden es im neuronalen Netzwerkkontext, aber es ist nützlich für allgemeine Zeitreihenprobleme. Ihre endgültige Empfehlung ist, wenn es eindeutig als deterministischer Trend identifiziert wird, die lineare Tendenz zu tun, oder Differenzierung anzuwenden, um die Zeitreihen stationär zu machen. Die Jury ist immer noch da draußen, aber die meisten in diesem Artikel zitierten Forscher empfehlen eine Differenzierung im Gegensatz zu einer linearen Detrending.

Bearbeiten:

Unten ist ein Zufallslauf mit stochastischem Driftprozess unter Verwendung exogener Variablen und Differenzarima dargestellt. Beide scheinen die gleiche Antwort zu geben und sind im Wesentlichen gleich.

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

Hoffe das hilft!

Prognostiker
quelle
Ich bin auch an anderen Ansichten interessiert - ich bin mir nicht sicher, ob das verbleibende weiße Rauschen die Anforderung für die Serie erfüllt, die stationär ist - dh wenn Sie weißes Rauschen erzielen, können Sie zufrieden sein? Oder wirkt sich die Einbeziehung der exogenen Variablen tatsächlich aus, um den Trend zu verringern und diese Reihe stationär zu machen? Ich frage mich, ob eine Überprüfung dieser späteren Frage ergibt, ob Sie dasselbe Modell (ar1-Koeffizient usw.) erhalten, wenn Sie mit linearer Regression den Trend aufheben und dann das Arima (1,0,0) anpassen ... Ich habe dies und das getan Ergebnisse sind nah. Vielleicht ist das Hinzufügen der exogenen Variablen dasselbe wie das Trending.
B_Miner
Ja, es ist dasselbe, vor ein paar Monaten bin ich in einem Artikel über Prognosen für neuronale Netze darauf gestoßen. Ich werde Referenz geben, wenn ich es finde.
Prognose
Gibt es eine Vorstellung davon, ob das Modell eine Einheitswurzel oder eine Konstante enthält?
B_Miner
Ich habe meine Antwort mit dem Artikel aktualisiert, auf den ich verwiesen habe.
Prognose
Ich denke, Sie haben es vielleicht nicht gespeichert.
B_Miner