Évaluer l'exactitude des prévisions pour des méthodes non saisonnières
En science des données, un ensemble d'entraînement est un jeu de données utilisé pour découvrir d'éventuelles relations. Un ensemble de test sert à vérifier la solidité de ces relations potentielles. Lorsque vous séparez un jeu de données en ces deux parties, vous réservez généralement une plus grande portion aux données d'entraînement et une plus petite aux tests.
Une fonction qui permet de créer des ensembles d'entraînement et de test est subset(), qui retourne un sous‑ensemble d'une série chronologique lorsque les arguments facultatifs start et end sont fournis au moyen des indices.
> # x est un vecteur numérique ou une série chronologique
> # Pour extraire les observations de 101 à 500
> train <- subset(x, start = 101, end = 500, ...)
> # Pour extraire les 500 premières observations
> train <- subset(x, end = 500, ...)
Comme vous l'avez vu dans la vidéo, une autre fonction, accuracy(), calcule diverses statistiques d'exactitude des prévisions à partir des prévisions et des observations réelles correspondantes. Elle est suffisamment futée pour trouver les observations pertinentes si vous lui en donnez plus que celles que vous souhaitez prévoir.
> # f est un objet de classe "forecast"
> # x est un vecteur numérique ou une série chronologique
> accuracy(f, x, ...)
Parmi les mesures d'exactitude offertes, on trouve la racine de l'erreur quadratique moyenne (RMSE), qui est la racine carrée de l'erreur quadratique moyenne (MSE). Minimiser la RMSE, ce qui correspond à accroître l'exactitude, revient à minimiser la MSE.
La série chronologique préchargée gold regroupe les prix quotidiens de l'or sur 1108 jours. Ici, vous utiliserez les 1000 premiers jours comme ensemble d'entraînement et calculerez des prévisions pour les 108 jours restants. Celles‑ci seront comparées aux valeurs réelles de ces jours au moyen des fonctions de prévision simples naive(), que vous avez utilisée plus tôt dans ce chapitre, et meanf(), qui produit des prévisions égales à la moyenne de toutes les observations. Vous devrez préciser le paramètre h (qui indique le nombre de valeurs à prévoir) pour les deux fonctions.
Cette activité fait partie du cours
Prévision en R
Instructions de l’exercice
- Utilisez
subset()pour créer un ensemble d'entraînement pourgoldcomprenant les 1000 premières observations. Nommez‑letrain. - Calculez les prévisions de l'ensemble de test, qui contient les données restantes, avec
naive()et assignez le résultat ànaive_fc. Réglezhen conséquence. - Calculez maintenant les prévisions du même ensemble de test avec
meanf()et assignez le résultat àmean_fc. Réglezhen conséquence. - Comparez les statistiques d'exactitude des prévisions des deux méthodes avec la fonction
accuracy(). - D'après ces résultats, enregistrez comme
bestforecastsles prévisions les plus exactes.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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 <- ___