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
Anleitung zur Übung
- Erstelle einen Trainingssatz namens
train, der aus 20 Jahrenqcement-Daten besteht, beginnend im Jahr 1988 und endend mit dem letzten Quartal 2007; du musst fürendeinen Vektor verwenden. Die verbleibenden Daten bilden deinen Testsatz. - Fitte ARIMA- und ETS-Modelle auf die Trainingsdaten und speichere sie als
fit1bzw.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
fc1bzw.fc2. Setzehauf die Anzahl der gesamten Quartale in deinem Testsatz. Vorsicht – die letzte Beobachtung inqcementist nicht das letzte Quartal des Jahres! - Nutze die Funktion
accuracy(), um anhand des RMSE-Werts das bessere Modell zu finden, und speichere es alsbettermodel.
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 <- ___