Differenzzeitreihen vor Arima oder innerhalb von Arima


12

Ist es besser, eine Reihe zu unterscheiden (vorausgesetzt, sie wird benötigt), bevor ein Arima verwendet wird, ODER besser, den Parameter d in Arima zu verwenden?

Ich war überrascht, wie unterschiedlich die angepassten Werte sind, je nachdem, welche Route mit demselben Modell und denselben Daten gefahren wird. Oder mache ich etwas falsch?

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

HINZUFÜGEN:

Bitte beachten Sie, dass ich die Serie einmal unterscheide und Arima (1,0,0) anpasse und dann Arima (1,1,0) an die Originalserie anpasse. Ich kehre (glaube ich) die Differenzierung der angepassten Werte für das arima (1,0,0) in der differenzierten Datei um.

Ich vergleiche die angepassten Werte - nicht die Vorhersagen.

Hier ist die Handlung (Rot ist Arima (1,1,0) und Blau ist Arima (1,0,0) in der differenzierten Reihe, nachdem zur ursprünglichen Skala zurückgekehrt wurde):

Bildbeschreibung hier eingeben

Antwort auf Dr. Hyndmans Antwort:

1) Können Sie im R-Code veranschaulichen, was ich tun müsste, um die beiden angepassten Werte (und vermutlich die Prognosen) für die Übereinstimmung zwischen Arima (1,1, 0) und Arima (1,0,0) für die manuell differenzierte Serie? Ich gehe davon aus, dass dies mit dem Mittelwert zusammenhängt, der nicht in modA enthalten ist, aber ich bin mir nicht ganz sicher, wie ich vorgehen soll.

X^t=Xt1+ϕ(Xt1Xt2)Y^t=ϕ(Xt1Xt2)Y^tX^tXt1? Wollen Sie damit sagen, dass ich falsch "undifferenziere"?


1
In Bezug auf Ihr Update. 1) Ich sehe keinen Grund, dies zu tun. Arima () erstellt die angepassten Werte und Prognosen. Warum sollte ich zusätzlichen R-Code erzeugen, um dasselbe zu tun, was Arima () bereits tut? 2) Ja, aber wenn Sie X-Hat unterscheiden, erhalten Sie keinen Y-Hat. Undifferenzierter Y-Hut gibt dir also keinen X-Hut.
Rob Hyndman

2
Vielen Dank. 1) War eine Lernübung für mich. 2) Mein Fehler bei der Berechnung in meiner ursprünglichen Frage (mit diffinv) war die Verwendung der angepassten Werte, und nicht das Original ist das, was ich davon zu bekommen glaube. (?) ... was zu # 1 führt, wie man es richtig macht Undifferenzieren Sie die Daten. Ich weiß, dass Arima es tun wird, indem sie versucht, einem Buchbeispiel mit den Gleichungen zu folgen.
B_Miner

Antworten:


14

Hier gibt es mehrere Probleme.

  1. Wenn Sie zuerst differenzieren, Arima()wird ein Modell an die differenzierten Daten angepasst. Wenn Sie Arima()die Differenzierung im Rahmen des Schätzverfahrens durchführen lassen, wird für die Initialisierung eine diffuse Voreinstellung verwendet. Dies wird in der Hilfedatei für erklärt arima(). Die Ergebnisse sind also unterschiedlich, da die anfängliche Beobachtung unterschiedlich gehandhabt wird. Ich denke, es macht keinen großen Unterschied in Bezug auf die Qualität der Schätzung. Es ist jedoch viel einfacher, Arima()die Differenzierung zu handhaben, wenn Sie Prognosen oder angepasste Werte für die ursprünglichen (undifferenzierten) Daten wünschen.

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

  3. X^t=Xt1+ϕ(Xt1Xt2)
    Y^t=ϕ(Xt1Xt2)
    {Xt}{Yt}
    X^tX^t1Y^t.

1
+1, ich wollte als Antwort 2 Punkte geben. Ein
großes Lob

Dr. Hyndman, vielen Dank für die Antwort! Ich muss viel über Zeitreihenanalyse lernen. Kann ich ein Follow-up anfordern? Ich bin nicht sicher, ob ich genau weiß, wie ich mit diesen Informationen umgehen soll, und veröffentliche daher eine Ergänzung zu meiner ursprünglichen Frage.
B_Miner

2

Manchmal müssen Sie lokale Mittel entfernen, um die Serie stationär zu machen. Wenn die ursprüngliche Serie einen ACF hat, der nicht aussterbt, kann dies an einer Pegel- / Stufenverschiebung in der Serie liegen. Das Mittel ist, die Serie zu entmeinen.

ANTWORT AN BOUNTY:

Der Weg, um die gleichen Ergebnisse / angepassten Werte zu erhalten, besteht darin, nach physikalischer Differenzierung der ursprünglichen (Y (t) - Reihe die erste Differenz (dely) zu erhalten und eine AR (1) ohne Konstante zu schätzen form dely (t) = B1 * dely (t-1) + a (t) OHNE einen Schnittpunkt. Die angepassten Werte dieses Modells, geeignet integriert in der Reihenfolge 1, geben (glaube ich) die angepassten Werte eines Modells an. [ 1-B] [AR (1)] Y (t) = a (t) Mit Ausnahme von AUTOBOX können Sie mit den meisten Software-Komponenten kein AR (1) -Modell ohne Konstante schätzen Gleichung für dely = + [(1- .675B * 1)] ** - 1 [A (T)], während die Gleichung für Y war

[(1-B * 1)] Y (T) = + [(1-676B * 1)] ** - 1 [A (T)]. Beachten Sie den Rundungsfehler, der durch die physikalische Differenzierung von Y verursacht wird. Beachten Sie, dass der Benutzer bei aktiver Differenzierung (im Modell) ODER nicht auswählen kann, ob die Konstante eingeschlossen oder ausgeschlossen werden soll. Der normale Prozess besteht darin, eine Konstante für ein stationäres (dh undifferenziertes) ARIMA-Modell einzuschließen und optional eine Konstante einzuschließen, wenn sich die Differenzierung im Modell befindet. Es scheint, dass der alternative Ansatz (Arima) eine Konstante in ein stationäres Modell zwingt, was meiner Meinung nach Ihr Dilemma verursacht hat.


Sollte dies die angepassten Werte in diesem Fall zwischen den Arima (1,0,0) für Delta-y und den Arima (1,1,0) für y beeinflussen?
B_Miner

In beiden Fällen passen Sie einen AR (1) an den ersten Unterschied der Zeitreihe an, oder? Wenn dies der Fall ist und die Anpassungsmethoden identisch sind, sollten sie genau dasselbe tun. Es gibt nicht einmal einen Unterschied in der Reihenfolge der Operationen.
Michael R. Chernick

Scheint hier nicht der Fall zu sein. Vielleicht wird @Rob_Hyndman einchecken.
B_Miner

1

Ich weiß nicht, warum es einen Unterschied in den Ergebnissen geben würde, es sei denn, Sie differenzieren mehrmals auf die eine als die andere Weise. Für eine ARIMA (p, d, q) werden die d-Differenzen zuerst vor jeder Modellanpassung durchgeführt. Dann wird das stationäre ARMA-Modell (p, q) in die differenzierte Reihe eingepasst. Die Annahme ist, dass nach dem Entfernen der Polynomtrends in der Reihe die verbleibende Reihe stationär ist. Die Anzahl der Differenzen entspricht der Reihenfolge des Polynoms, das Sie entfernen möchten. Für einen linearen Trend nehmen Sie also nur eine Differenz, für einen quadratischen Trend nehmen Sie zwei Differenzen. Ich stimme den meisten Aussagen in Johns Antwort nicht zu.


0

Ein Grund, eine I (1) -Serie zu unterscheiden, besteht darin, sie stationär zu machen. Vorausgesetzt, Sie haben die richtige Spezifikation für das ARIMA-Modell. Bei den Residuen des Modells werden die autoregressiven und gleitenden Durchschnittskomponenten entfernt und sollten stationär sein. In dieser Hinsicht kann es sinnvoll sein, die Residuen für das Modell zu verwenden und nicht zu differenzieren. Unter Umständen, in denen Sie viele Daten haben, von denen Sie glauben, dass sie ungefähr I (1) sind, unterscheiden einige Benutzer die Daten lediglich, anstatt das ARIMA-Modell vollständig zu schätzen. Das ARIMA-Modell eignet sich für eine ganze Reihe von Zeitreihenproblemen, bei denen ein Unterschied möglicherweise nicht sinnvoll ist. Wenn die Daten beispielsweise eine Mittelwertumkehr erfahren, ist dies möglicherweise nicht immer für einen Unterschied geeignet, da es möglicherweise nicht I (1) ist.


Würden Sie erwarten, dass die Unterschiede so groß sind? Ich hatte den Eindruck, dass ich etwas falsch gemacht habe, als ich von Unterschieden zum Original zurückkehrte.
B_Miner

Könnten Sie genau erklären, was Sie getan haben? Ich kann keinen R-Code lesen. Wenn Sie die gleiche Anzahl von Differenzen in beide Richtungen nehmen und nach dem Differenzieren zum gleichen ARMA-Modell passen, sollten Sie die gleichen Ergebnisse erzielen, solange die Anpassungstechniken gleich sind (normalerweise werden bedingte kleinste Quadrate verwendet).
Michael R. Chernick

Er nimmt einige Daten, passt eine ARIMA (1,1,0), nimmt dann die Differenzen und passt eine ARIMA (1,0,0). Schließlich vergleicht er den einen Zeitraum der Stichprobenprognosen miteinander. Vermutlich sind sie unterschiedlich, aber wir können die Grafiken im Beitrag nicht sehen.
John

yt=βyt1+ϵtyt=(β1)yt1+ϵtϵtyt=βyt1+ϵt

1
Endlich richtig. Ich kann LaTex nicht in 5 Minuten machen! Soweit ich das beurteilen kann, ergibt sich die obige Gleichung in beide Richtungen.
Michael R. Chernick
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.