2016-12-02 3 views
2

Ich arbeite am Aufbau eines Zeitreihenmodells.Unterschied zwischen simulate() und forecast() im Paket "forecast"

Allerdings habe ich Probleme zu verstehen, was der Unterschied zwischen der simulate Funktion und der forecast Funktion im forecast Paket ist.

Angenommen, ich habe ein Arima-Modell gebaut und möchte es verwenden, um zukünftige Werte von bis zu 10 Jahren zu simulieren. Die Daten sind stündlich und wir haben Daten für ein Jahr.

Bei Verwendung von forecast zur Vorhersage der nächsten 1000-Schritt-Voraus-Schätzung, habe ich die folgende Grafik.

Mit Prognosemethode

enter image description here

Dann habe ich die simulate Funktion die nächsten 1000 simulierten Werte und bekam die folgende Handlung zu simulieren.

Mit Simulieren Methode

enter image description here

Datenpunkte, nachdem die rote Linie Datenpunkte simuliert werden.

Im letzten Beispiel habe ich die folgenden Codes verwendet, um die zukünftigen Werte zu simulieren.

simulate(arima1, nsim=1000, future=TRUE, bootstrap=TRUE)) 

wo arima1 ist mein trainiert ARIMA-Modell, Bootstrap-Residuen verwendet werden, da die Modellresiduen nicht ganz normal sind.

Laut Definition im Paket forecast bedeutet future=TRUE, dass wir zukünftige Werte basierend auf den historischen Daten simulieren.

Kann mir jemand sagen, was der Unterschied zwischen diesen beiden Methoden ist? Warum gibt simulate() mir viel realistischere Ergebnisse, aber die prognostizierten Werte von forecast() konvergieren nach mehreren Iterationen einfach zu einer Konstante (keine großen Schwankungen zu den Ergebnissen von simulate())?

Antwort

2

Eine Simulation ist ein möglicher zukünftiger Musterpfad der Serie.

Eine Punktprognose ist der Mittelwert aller möglichen zukünftigen Probenpfade. Daher sind die Punktprognosen normalerweise viel weniger variabel als die Daten.

Die Funktion forecast liefert Punktprognosen (der Mittelwert) und Intervallprognosen, die die geschätzte Abweichung in den zukünftigen Probenpfaden enthalten.

Als ein Punkt ist ein ARIMA-Modell für diese Zeitreihe aufgrund der Schiefe nicht geeignet. Möglicherweise müssen Sie zuerst eine Umwandlung verwenden.

+0

Danke für Ihre Antwort! –

Verwandte Themen