Prognosegenauigkeit nicht-saisonaler Methoden bewerten
In der Data Science ist ein Trainingsset ein Datensatz, der verwendet wird, um mögliche Zusammenhänge zu entdecken. Ein Testset ist ein Datensatz, mit dem die Stärke dieser potenziellen Zusammenhänge überprüft wird. Wenn du einen Datensatz in diese Teile aufteilst, nutzt du in der Regel mehr Daten zum Trainieren und weniger zum Testen.
Eine Funktion, mit der Trainings- und Testsets erstellt werden können, ist subset(). Sie gibt eine Teilmenge einer Zeitreihe zurück, wobei die optionalen Argumente start und end über Indexwerte angegeben werden.
> # x ist ein numerischer Vektor oder eine Zeitreihe
> # Um die Beobachtungen von 101 bis 500 zu entnehmen
> train <- subset(x, start = 101, end = 500, ...)
> # Um die ersten 500 Beobachtungen zu entnehmen
> train <- subset(x, end = 500, ...)
Wie du im Video gesehen hast, berechnet eine weitere Funktion, accuracy(), verschiedene Genauigkeitskennzahlen für Prognosen, gegeben die Prognosen und die entsprechenden tatsächlichen Beobachtungen. Sie ist smart genug, die relevanten Beobachtungen zu finden, wenn du ihr mehr als die vorhergesagten übergibst.
> # f ist ein Objekt der Klasse "forecast"
> # x ist ein numerischer Vektor oder eine Zeitreihe
> accuracy(f, x, ...)
Zu den bereitgestellten Genauigkeitsmaßen gehört die Wurzel des mittleren quadratischen Fehlers (RMSE), also die Quadratwurzel des Mean Squared Error (MSE). Das Minimieren des RMSE, was einer höheren Genauigkeit entspricht, ist gleichbedeutend mit dem Minimieren des MSE.
Die vorab geladene Zeitreihe gold enthält tägliche Goldpreise für 1108 Tage. Hier verwendest du die ersten 1000 Tage als Trainingsset und berechnest Prognosen für die verbleibenden 108 Tage. Diese werden mit den tatsächlichen Werten für diese Tage verglichen, und zwar mit den einfachen Prognosefunktionen naive(), die du bereits früher in diesem Kapitel genutzt hast, und meanf(), die Prognosen liefert, die dem Mittelwert aller Beobachtungen entsprechen. Für beide musst du das Schlüsselwort h angeben (es legt fest, wie viele Werte du vorhersagen willst).
Diese Übung ist Teil des Kurses
Prognosen mit R
Anleitung zur Übung
- Verwende
subset(), um fürgoldein Trainingsset aus den ersten 1000 Beobachtungen zu erstellen. Nenne estrain. - Berechne Prognosen für das Testset, das die verbleibenden Daten enthält, mit
naive()und weise sienaive_fczu. Setzehentsprechend. - Berechne nun Prognosen für dasselbe Testset mit
meanf()und weise siemean_fczu. Setzehentsprechend. - Vergleiche die Genauigkeitskennzahlen der beiden Methoden mit der Funktion
accuracy(). - Speichere basierend auf den obigen Ergebnissen die Prognosen mit der höheren Genauigkeit als
bestforecasts.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# Create the training data as train
train <- subset(___, end = ___)
# Compute naive forecasts and save to naive_fc
naive_fc <- naive(___, h = ___)
# Compute mean forecasts and save to mean_fc
mean_fc <- meanf(___, h = ___)
# Use accuracy() to compute RMSE statistics
accuracy(___, gold)
___(___, gold)
# Assign one of the two forecasts as bestforecasts
bestforecasts <- ___