/ / Von Auto.arima zur Vorhersage in R - r

Von Auto.arima zur Vorhersage in R - r

Ich verstehe die Syntax nicht genau forecast() wendet externe Regressoren in der library(forecast) im R.

Mein Fit sieht so aus:

fit <- auto.arima(Y,xreg=factors)

woher Y ist ein timeSeries Objekt 100 x 1 und Faktoren ist a timeSeries Objekt 100 x 5.

Wenn ich zur Prognose gehe, bewerbe ich mich ...

forecast(fit, h=horizon)

Und ich bekomme einen Fehler:

Error in forecast.Arima(fit, h = horizon) : No regressors provided

Will ich, dass ich die XRegressoren aus der Anpassung zurück addiere? Ich dachte, dass diese in die aufgenommen wurden fit Objekt als fit$xreg. Bedeutet das, dass es nach zukünftigen Werten der X-Regressoren fragt, oder dass ich dieselben Werte wiederholen sollte, die ich in der Anpassungsmenge verwendet habe? Die Dokumentation deckt nicht die Bedeutung von xreg im Prognoseschritt.

Ich glaube, dass all das bedeutet, dass ich verwenden sollte

forecast(fit, h=horizon,xreg=factors)

oder

forecast(fit, h=horizon,xreg=fit$xreg)

Was zu den gleichen Ergebnissen führt. Aber ich bin mir nicht sicher, ob der Prognoseschritt die Faktoren als zukünftige Werte oder angemessen als frühere Werte interpretiert.

  1. Führt das, wie ich es erwarte, zu einer Vorhersage aus rein vergangenen Werten?
  2. Warum muss ich die xreg-Werte zweimal angeben? Es läuft nicht, wenn ich sie ausschließe, also verhält es sich nicht wie eine Option.

Antworten:

13 für die Antwort № 1

Korrigiere mich, wenn ich falsch liege, aber ich denke du verstehst nicht ganz, wie das ARIMA Modell mit Regressoren funktioniert.

Wenn Sie mit einem einfachen ARIMA-Modell prognostizieren(ohne Regressoren) verwendet es einfach vergangene Werte Ihrer Zeitreihe, um zukünftige Werte vorherzusagen. In einem solchen Modell könnten Sie einfach Ihren Horizont angeben, und es würde Ihnen eine Prognose bis zu diesem Horizont geben.

Wenn Sie Regressoren zum Erstellen eines ARIMA-Modells verwenden, müssen Sie diese einschließen zukünftige Werte der Regressoren Vorhersagen. Wenn Sie zum Beispiel die Temperatur als Regressor verwendet haben und die Krankheitsinzidenz vorhergesagt haben, würden Sie zukünftige Temperaturwerte benötigen, um die Krankheitsinzidenz vorherzusagen.

In der Tat, die Dokumentation tut sprich darüber xreg speziell. Sieh nach oben ?forecast.Arima und schauen Sie sich beide Argumente an h und xreg. Sie werden das sehen, wenn xreg wird dann benutzt h wird ignoriert. Warum? Denn wenn deine Funktion es nutzt xreg, dann es braucht sie für die Vorhersage.

Also, in deinem Code, h wurde einfach ignoriert, wenn Sie aufgenommen haben xreg. Da Sie nur die Werte verwendet haben, die Sie für das Modell verwendet haben, gab es nur alle Vorhersagen für die gleiche Gruppe von Regressoren als ob sie in der Zukunft wären.