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):
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.
? Wollen Sie damit sagen, dass ich falsch "undifferenziere"?
quelle
Antworten:
Hier gibt es mehrere Probleme.
Wenn Sie zuerst differenzieren,
Arima()
wird ein Modell an die differenzierten Daten angepasst. Wenn SieArima()
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ärtarima()
. 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.modB
modA
Arima()
include.mean
quelle
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.
quelle
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.
quelle
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.
quelle