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
Dann habe ich die simulate
Funktion die nächsten 1000 simulierten Werte und bekam die folgende Handlung zu simulieren.
Mit Simulieren Methode
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()
)?
Danke für Ihre Antwort! –