LoslegenKostenlos loslegen

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

Kurs anzeigen

Anleitung zur Übung

  • Verwende subset(), um für gold ein Trainingsset aus den ersten 1000 Beobachtungen zu erstellen. Nenne es train.
  • Berechne Prognosen für das Testset, das die verbleibenden Daten enthält, mit naive() und weise sie naive_fc zu. Setze h entsprechend.
  • Berechne nun Prognosen für dasselbe Testset mit meanf() und weise sie mean_fc zu. Setze h entsprechend.
  • 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 <- ___
Code bearbeiten und ausführen