Méthodes d'évaluation des prévisions

5.4 Méthodes d'évaluation des prévisions

Objectifs d'apprentissage

À la fin de cette section, vous devriez être capable de :

  • 5.4.1 Expliquer la nature de l'erreur dans la prévision d'une série temporelle.
  • 5.4.2 Calculer les mesures d'erreur courantes pour les modèles de séries temporelles.
  • 5.4.3 Produire des intervalles de prédiction dans un exemple de prévision.

Une prévision de série temporelle prédit essentiellement les valeurs centrales pour les termes futurs de la série. Aux fins de prédiction, le modèle ne prend en compte que la tendance ainsi que toute variation cyclique ou saisonnière ayant pu être détectée dans les données connues. Bien que le bruit et les variations aléatoires influencent certainement les valeurs futures de la série temporelle, leurs effets précis ne peuvent pas être prédits (de par leur nature même). Ainsi, une valeur prévue constitue la meilleure estimation du modèle en l'absence de terme d'erreur. D'un autre côté, l'erreur affecte le degré de certitude que nous pouvons avoir quant aux prévisions du modèle. Dans cette section, nous nous concentrons sur la quantification de l'erreur de prévision à l'aide d'outils statistiques tels que les intervalles de prédiction.

Erreur de prévision

Supposons que vous disposiez d'un modèle (x^n)(x^n) pour une série temporelle donnée (xn)(xn). Rappelez-vous, d'après Composantes de l'analyse de séries temporelles, que les résidus quantifient l'erreur entre la série temporelle et le modèle et servent d'estimation du bruit ou de la variation aléatoire.

εn=xn−x^nεn=xn−x^n

Mieux le modèle est ajusté aux données observées, plus les valeurs de εnεn seront faibles. Cependant, même de très bons modèles peuvent s'avérer de piètres prédicteurs des valeurs futures de la série temporelle. Paradoxalement, plus un modèle s'ajuste bien aux données connues, moins il risque d'être performant pour prédire les données futures. Il existe un risque de surapprentissage. (Ce terme est défini en détail dans Notions de base de la prise de décision par apprentissage automatique, mais pour l'instant, nous n'avons pas besoin d'approfondir ce sujet.) Une technique courante pour éviter le surapprentissage consiste à construire le modèle en utilisant seulement une partie des données connues, puis l'exactitude du modèle peut être testée sur les données restantes qui ont été mises de côté.

Pour évaluer l'exactitude d'un modèle, nous devons poser la question complémentaire : À quelle distance les prédictions se situent-elles des valeurs réelles ? En d'autres termes, nous devons essayer de quantifier l'erreur totale. Il existe plusieurs mesures d'erreur (measures of error), ou mesures d'ajustement (measures of fit), c'est-à-dire les métriques utilisées pour évaluer dans quelle mesure les prédictions d'un modèle correspondent aux données observées. Nous n'aborderons ici que quelques-unes d'entre elles qui sont les plus utiles pour les séries temporelles. Dans chaque formule, xixi désigne le ieie terme de la série temporelle, et εiεi est l'erreur entre le ieie terme réel et le ieie terme prédit de la série.

  1. Erreur absolue moyenne (MAE) (mean absolute error (MAE)) : 1n∑i=1n|εi|1n∑i=1n|εi|. Une mesure de l'ampleur moyenne des erreurs.
  2. Racine de l'erreur quadratique moyenne (RMSE) (root mean squared error (RMSE)) : 1n∑i=1n(εi2)1n∑i=1n(εi2). Une mesure de l'écart type des erreurs, pénalisant plus lourdement les erreurs importantes que la MAE.
  3. Erreur absolue moyenne en pourcentage (MAPE) (mean absolute percentage error (MAPE)) : 1n∑i=1n|εixi|1n∑i=1n|εixi|. Une mesure des erreurs relatives moyennes — c'est-à-dire un pourcentage entre les valeurs prédites et les valeurs réelles (en moyenne).
  4. Erreur absolue moyenne en pourcentage symétrique (sMAPE) (symmetric mean absolute percentage error (sMAPE)) : 1n∑i=1n2|εi||xi|+|x^i|1n∑i=1n2|εi||xi|+|x^i|. Semblable à la MAPE, une mesure des erreurs relatives moyennes, mais normalisée afin que les erreurs soient mesurées par rapport aux valeurs réelles ainsi qu'aux valeurs prédites.

Parmi ces mesures d'erreur, la MAE et la RMSE sont dépendantes de l'échelle (scale-dependent), ce qui signifie que l'erreur est directement proportionnelle aux données elles-mêmes. En d'autres termes, si tous les termes de la série temporelle et du modèle étaient multipliés par un facteur kk, alors la MAE et la RMSE seraient également toutes deux multipliées par kk. En revanche, la MAPE et la sMAPE ne dépendent pas de l'échelle. Ces mesures d'erreur sont souvent exprimées sous forme de pourcentages (en multipliant le résultat de la formule par 100 %). Toutefois, ni la MAPE ni la sMAPE ne doivent être utilisées pour des données mesurées sur une échelle contenant 0 et des nombres négatifs. Par exemple, il ne serait pas judicieux d'utiliser la MAPE ou la sMAPE comme mesure d'erreur pour un modèle de série temporelle de relevés de température en degrés Celsius. Pour toutes ces mesures d'erreur, des valeurs plus faibles indiquent une erreur moindre et donc une plus grande exactitude du modèle. Cela est particulièrement utile pour comparer deux modèles ou plus.

Exemple 5.9

Problème

Calculez la MAE, la RMSE, la MAPE et la sMAPE pour le modèle de lissage EMA de la série temporelle de l'indice S&P, présenté dans le Tableau 5.3.

Solution

La première étape consiste à déterminer les résidus, εnεn, et à prendre leurs valeurs absolues. Pour la RMSE, nous aurons besoin des résidus au carré, inclus dans le Tableau 5.7. Nous incluons également les termes |εixi||εixi| et 2|εi||xi|+|x^i|2|εi||xi|+|x^i|, qui servent respectivement à calculer la MAPE et la sMAPE. Remarquez que toutes les formules sont des moyennes d'une certaine forme, mais que la RMSE nécessite une étape supplémentaire consistant à extraire la racine carrée.

Année Indice S&P en fin d'année Estimation EMA Résidus abs. |εn|=|xn−x^n||εn|=|xn−x^n| (εn)2(εn)2 |εixi||εixi| 2|εi||xi|+|x^i|2|εi||xi|+|x^i|
2013 1848.36 1848.36 0 0 0 0
2014 2058.9 1848.36 210.54 44327.09 0.102 0.108
2015 2043.94 2006.27 37.67 1419.03 0.018 0.019
2016 2238.83 2034.52 204.31 41742.58 0.091 0.096
2017 2673.61 2187.75 485.86 236059.94 0.182 0.2
2018 2506.85 2552.15 45.3 2052.09 0.018 0.018
2019 3230.78 2518.17 712.61 507813.01 0.221 0.248
2020 3756.07 3052.63 703.44 494827.83 0.187 0.207
2021 4766.18 3580.21 1185.97 1406524.84 0.249 0.284
2022 3839.5 4469.69 630.19 397139.44 0.164 0.152
2023 4769.83 3997.05 772.78 597188.93 0.162 0.176
N/A N/A Moyenne : 453.52 339008.62 0.127 0.137
Tableau 5.7 Données nécessaires pour calculer la MAE, la RMSE, la MAPE et la sMAPE pour le modèle de lissage EMA

MAE=453.52MAE=453.52. (Les valeurs prédites sont [en moyenne] éloignées d'environ 450 unités des valeurs réelles.)

RMSE=339008.62=582.24RMSE=339008.62=582.24. (Les erreurs entre les valeurs prédites et moyennes présentent un écart type d'environ 580 par rapport à l'erreur idéale de 0.)

MAPE=0.127,soit 12.7%MAPE=0.127,soit 12.7%. (Les valeurs prédites se situent [en moyenne] à environ 13 % de leurs valeurs réelles.)

sMAPE=0.137,soit 13.7%sMAPE=0.137,soit 13.7%. (En considérant à la fois les valeurs prédites et les valeurs réelles, leurs écarts relatifs sont en moyenne d'environ 14 % les uns par rapport aux autres.)

Ces résultats peuvent être utilisés pour comparer l'estimation EMA à une autre méthode d'estimation ou de prédiction afin de déterminer laquelle est la plus exacte. Plus les erreurs sont faibles, plus la méthode est exacte.

Intervalles de prédiction

Une prévision est souvent accompagnée d'un intervalle de prédiction (prediction interval) fournissant une plage de valeurs que la variable pourrait prendre avec un certain niveau de probabilité. Par exemple, si l'intervalle de prédiction d'une prévision est indiqué à 80 %, alors l'intervalle de prédiction contient une plage de valeurs qui devrait inclure la valeur future réelle avec une probabilité de 0,8. Les intervalles de prédiction ont été introduits dans Analyse de la variance (ANOVA) dans le contexte de la régression linéaire, nous n'entrerons donc pas ici dans les détails mathématiques. Le point essentiel est que nous recherchons une mesure de la marge d'erreur, EnEn (dépendant de nn), telle que les observations futures des données se situeront dans l'intervalle x^n±Enx^n±En avec une probabilité αα, où αα est un niveau de confiance choisi.

Ici, nous allons montrer comment utiliser Python pour obtenir des intervalles de prédiction.

La bibliothèque Python statsmodels.tsa.arima.model contient également des fonctions permettant de déterminer les intervalles de confiance. Notez que la commande get_forecast() est utilisée ici plutôt que forecast(), car la première offre davantage de fonctionnalités.

Code Python

    ### Please run all code from previous section before running this ###
    
    # Set alpha to 0.2 for 80% confidence interval
    forecast_steps = 24
    forecast_results = results.get_forecast(steps=forecast_steps, alpha=0.2) 
    
    # Extract forecast values and confidence intervals
    forecast_values = forecast_results.predicted_mean
    confidence_intervals = forecast_results.conf_int()
    
    # Plot the results
    plt.figure(figsize=(10, 6))
    
    # Plot original time series
    plt.plot(df['Value'], label='Original Time Series')
    
    # Plot fitted values
    plt.plot(results.fittedvalues, color='red', label='Fitted Values')
    
    # Plot forecasted values with confidence intervals
    plt.plot(forecast_values, color='red', linestyle='dashed', label='Forecasted Values')
    plt.fill_between(
      range(len(df), len(df) + forecast_steps),
      confidence_intervals.iloc[:, 0],
      confidence_intervals.iloc[:, 1],
      color='red', alpha=0.2,
      label='80% Confidence Interval' 
    )
    
    # Set labels and legend
    plt.xlabel('Months')
    plt.title('Monthly Consumption of Coal for Electricity Generation in the United States from 2016 to 2022')
    plt.legend()
    
    # Apply the formatter to the Y-axis
    plt.gca().yaxis.set_major_formatter(FuncFormatter(y_format))
    plt.show()
    

Le résultat obtenu ressemble à ceci :

Graphique de série temporelle intitulé « Monthly consumption of coal for electricity generation in the United States from 2016 to 2022 ». L'axe des ordonnées va de -50 000 à 125 000, l'axe des abscisses de 0 à 100. La ligne bleue représente la consommation réelle de charbon, qui fluctue selon les saisons. La ligne rouge représente les valeurs ajustées, qui lissent les fluctuations saisonnières, et la ligne rouge en pointillés représente les valeurs prévues. La zone ombrée représente l'intervalle de confiance à 80 % pour les valeurs prévues. La consommation de charbon montre une tendance générale à la baisse, passant d'environ 125 000 tonnes par mois en 2016 à environ 0 tonne par mois en 2022.

Les données de prévision (courbe en pointillés) sont désormais entourées d'une région ombrée. Avec une probabilité de 80 %, toutes les observations futures devraient s'inscrire dans cette région ombrée. Bien entendu, plus nous essayons d'aller loin dans le futur, plus nos prévisions seront incertaines, ce qui se traduit par un intervalle de confiance de plus en plus large.

Jeux de données

Remarque : Les principaux jeux de données référencés dans le code du chapitre peuvent également être téléchargés ici.