Erklären Sie die Prognosen von einem ARIMA-Modell
Ich versuche zu erklären, mir das Prognose-Ergebnis aus der Anwendung der ARIMA-Modell zu einem Zeitreihen-Datensatz. Die Daten aus der M1-Wettbewerb, die Serie ist MNB65. Ich bin versucht, um zu passen die Daten einem ARIMA(1,0,0) - Modell und Holen Sie sich die Prognosen. Ich bin mit R. Hier sind einige Ausgabe-snippets:
> arima(x, order = c(1,0,0))
Series: x
ARIMA(1,0,0) with non-zero mean
Call: arima(x = x, order = c(1, 0, 0))
Coefficients:
ar1 intercept
0.9421 12260.298
s.e. 0.0474 202.717
> predict(arima(x, order = c(1,0,0)), n.ahead=12)
$pred
Time Series:
Start = 53
End = 64
Frequency = 1
[1] 11757.39 11786.50 11813.92 11839.75 11864.09 11887.02 11908.62 11928.97 11948.15 11966.21 11983.23 11999.27
Habe ich ein paar Fragen:
(1) Wie kann ich erklären, dass, obwohl der Datensatz zeigt einen klaren abwärtstrend, die Prognose von diesem Modell trends nach oben. Dies geschieht auch für ARIMA(2,0,0), das ist die beste ARIMA-fit für die Daten mithilfe der automatischen.arima (Prognose Paket) und für ein ARIMA(1,0,1) - Modell.
(2) Der intercept-Wert für den ARIMA(1,0,0) - Modell ist 12260.298. Sollte nicht das abfangen befriedigen die Gleichung: C = Mittelwert * (1 - sum(AR coeffs)), in welchem Fall der Wert sollte 715.52. Ich muss fehlt etwas grundlegendes hier.
(3) Dies ist eindeutig eine Serie mit nicht-stationären bedeuten. Warum ist ein AR(2) - Modell ausgewählt als das beste Modell von auto.arima? Könnte es sein, eine intuitive Erklärung dafür?
Dank.
InformationsquelleAutor Samik R | 2010-04-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kein ARIMA(p,0,q) - Modell wird es ermöglichen, einen trend, denn das Modell ist stationär. Wenn Sie wirklich wollen, um einen trend, verwenden ARIMA(p,1,q) mit einer drift-term, oder ARIMA(p,2,q). Die Tatsache, dass auto.arima() ist, was darauf hindeutet, 0 Unterschiede würden in der Regel gibt es keinen klaren trend.
Hilfe-Datei für arima() zeigt, dass der Achsenabschnitt eigentlich bedeuten. Das heißt, die AR(1) - Modell ist (Y_t-c) = phi*(Y_{t-1} - c) + e_t eher als Y_t = c + phi*Y_{t-1} + e_t als Sie vielleicht erwarten.
auto.arima() verwendet eine unit-root-test, um zu bestimmen, die Anzahl der Unterschiede erforderlich. So überprüfen Sie die Ergebnisse der unit-root-test, um zu sehen, was Los ist. Sie können immer geben Sie die erforderliche Anzahl von unterschieden in auto.arima() wenn Sie denken, dass die unit-root-tests führt nicht zu einem sinnvollen Modell.
Hier sind die Ergebnisse von zwei tests für Ihre Daten:
Also der ADF sagt, stark nicht-stationären (die null-Hypothese in diesem Fall), während der KPSS nicht ganz ablehnen stationarität (die null-Hypothese für diesen test). auto.arima() verwendet, letztere standardmäßig. Sie könnte verwenden Sie auto.arima(x,test="adf") - wenn man wollte-der erste test. In diesem Fall schlägt es vor, das Modell ARIMA(0,2,1), mit dem eine trend.
Prof. Hyndman, gibt es eine Möglichkeit, um sicher zu sein, dass eine Serie ist, ich(2) oder erfordert doppelt differenzierende um es stationär ? Die Ergebnisse für die weitere Analyse wird sich ändern, wenn die Serie differenziert werden einmal oder zweimal. Ihr Beitrag schlägt vor, KPSS, aber gibt es alternativen ? Danke.
InformationsquelleAutor Rob Hyndman