LoslegenKostenlos loslegen

Vergleich von auto.arima() und ets() bei saisonalen Daten

Was passiert, wenn du Trainings- und Testsätze für Daten erstellen möchtest, die häufiger als jährlich vorliegen? Falls nötig, kannst du in der Funktion window() für die Schlüsselwörter start und/oder end einen Vektor der Form c(year, period) verwenden. Außerdem musst du sicherstellen, dass du bei Vorhersagefunktionen den passenden Wert für h nutzt. Denk daran: h sollte der Länge der Daten entsprechen, die deinen Testsatz bilden.

Wenn deine Daten zum Beispiel 15 Jahre umfassen, dein Trainingssatz aus den ersten 10 Jahren besteht und du die letzten 5 Jahre vorhersagen willst, verwendest du h = 12 * 5 statt h = 5, weil dein Testsatz 60 monatliche Beobachtungen enthält. Besteht dein Trainingssatz dagegen aus den ersten 9,5 Jahren und du willst die letzten 5,5 Jahre vorhersagen, verwendest du h = 66, um die zusätzlichen 6 Monate zu berücksichtigen.

In der letzten Übung dieses Kapitels vergleichst du saisonale ARIMA- und ETS-Modelle, angewandt auf die vierteljährlichen Zementproduktionsdaten qcement. Da die Zeitreihe sehr lang ist, kannst du dir einen Trainings- und einen Testsatz leisten, anstatt eine Zeitreihen-Cross-Validation zu verwenden. Das ist deutlich schneller.

Die qcement-Daten stehen dir in deinem Workspace zur Verfügung.

Diese Übung ist Teil des Kurses

Prognosen mit R

Kurs anzeigen

Anleitung zur Übung

  • Erstelle einen Trainingssatz namens train, der aus 20 Jahren qcement-Daten besteht, beginnend im Jahr 1988 und endend mit dem letzten Quartal 2007; du musst für end einen Vektor verwenden. Die verbleibenden Daten bilden deinen Testsatz.
  • Fitte ARIMA- und ETS-Modelle auf die Trainingsdaten und speichere sie als fit1 bzw. fit2.
  • Prüfe – wie in den vorherigen Übungen – ob beide Modelle Residuen mit weißem Rauschen haben.
  • Erzeuge Vorhersagen für die verbleibenden Daten aus beiden Modellen als fc1 bzw. fc2. Setze h auf die Anzahl der gesamten Quartale in deinem Testsatz. Vorsicht – die letzte Beobachtung in qcement ist nicht das letzte Quartal des Jahres!
  • Nutze die Funktion accuracy(), um anhand des RMSE-Werts das bessere Modell zu finden, und speichere es als bettermodel.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# Use 20 years of the qcement data beginning in 1988
train <- window(___, start = ___, end = ___)

# Fit an ARIMA and an ETS model to the training data
fit1 <- ___
fit2 <- ___

# Check that both models have white noise residuals
___
___

# Produce forecasts for each model
fc1 <- forecast(___, h = ___)
fc2 <- forecast(___, h = ___)

# Use accuracy() to find better model based on RMSE
accuracy(___, ___)
accuracy(___, ___)
bettermodel <- ___
Code bearbeiten und ausführen