LoslegenKostenlos loslegen

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

Kurs anzeigen

Anleitung zur Übung

  • Erzeuge eine xreg-Matrix namens harmonics mit der Methode fourier() auf gasoline mit der Ordnung \(K=13\), gewählt zur Minimierung des AICc.
  • Passe ein dynamisches Regressionsmodell an fit an. Setze xreg auf harmonics und seasonal auf FALSE, da die Saisonalität durch die Regressoren abgebildet wird.
  • Erzeuge analog eine neue xreg-Matrix namens newharmonics und berechne dann die Vorhersagen für die nächsten drei Jahre als fc.
  • 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
___
Code bearbeiten und ausführen