Wöchentliche Daten vorhersagen
Bei wöchentlichen Daten ist es mit ETS- oder ARIMA-Modellen schwierig, Saisonalität abzubilden, da die Saisonlänge zu groß ist (ungefähr 52). Stattdessen kannst du harmonische Regression verwenden, die Sinus- und Kosinusfunktionen nutzt, um die Saisonalität zu modellieren.
Die Funktion fourier() erleichtert das Erzeugen der benötigten Harmonischen. Je höher die Ordnung (\(K\)), desto „welligere“ saisonale Muster sind erlaubt. Mit \(K=1\) erhältst du eine einfache Sinuskurve. Du kannst den Wert von \(K\) wählen, indem du den AICc-Wert minimierst. Wie du im Video gesehen hast, nimmt fourier() eine erforderliche Zeitreihe, die gewünschte Anzahl an Fourier-Termen und optional die Anzahl der Zeilen für die Vorhersage entgegen:
> # fourier(x, K, h = NULL)
> fit <- auto.arima(cafe, xreg = fourier(cafe, K = 6),
seasonal = FALSE, lambda = 0)
> fit %>%
forecast(xreg = fourier(cafe, K = 6, h = 24)) %>%
autoplot() + ylim(1.6, 5.1)
Die vorab geladene gasoline-Reihe enthält wöchentliche Daten zu US-Produkten aus Fertigbenzin. In dieser Übung passt du eine harmonische Regression auf diesen Datensatz an und sagst die nächsten 3 Jahre voraus.
Diese Übung ist Teil des Kurses
Prognosen mit R
Anleitung zur Übung
- Erzeuge eine
xreg-Matrix namensharmonicsmit der Methodefourier()aufgasolinemit der Ordnung \(K=13\), gewählt zur Minimierung des AICc. - Passe ein dynamisches Regressionsmodell an
fitan. SetzexregaufharmonicsundseasonalaufFALSE, da die Saisonalität durch die Regressoren abgebildet wird. - Erzeuge analog eine neue
xreg-Matrix namensnewharmonicsund berechne dann die Vorhersagen für die nächsten drei Jahre alsfc. - Plotte schließlich die Vorhersagen
fc.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# Set up harmonic regressors of order 13
harmonics <- fourier(___, K = ___)
# Fit regression model with ARIMA errors
fit <- auto.arima(___, xreg = ___, seasonal = ___)
# Forecasts next 3 years
newharmonics <- fourier(___, K = ___, h = ___)
fc <- forecast(___, xreg = ___)
# Plot forecasts fc
___