Comparer une prévision de série chronologique avec une référence saisonnière
Construire une référence basée sur la saison précédente, l'évaluer sur des observations ultérieures et distinguer l'alignement calendaire des fuites d'information et des données manquantes.
Dans ce guide
La réponse courte
Une référence saisonnière prédit une observation à l’aide de la valeur observée lors de la même saison précédente. Pour des observations mensuelles régulières avec une saisonnalité annuelle, la référence se situe douze observations plus tôt. Comparez votre modèle et cette référence sur les mêmes dates futures, en utilisant uniquement les informations disponibles à chaque origine de prévision. Une faible erreur d’entraînement ne suffit pas à prouver que le modèle améliore cette référence simple.
Choisir une référence adaptée à la tâche
Une moyenne générale ignore la position d’une valeur dans un cycle répété. Lorsque la demande varie de façon fiable selon les mois, le mois correspondant de l’année précédente peut constituer une référence plus informative. C’est une hypothèse à évaluer, pas une preuve que toute série est saisonnière.
Choisissez la période à partir du calendrier d’observation et du processus réel. Douze lignes signifient une année uniquement pour une série mensuelle complète. Douze lignes dans des données quotidiennes ou un tableau avec des mois manquants représentent un intervalle différent. La référence doit correspondre à l’objectif de prévision, pas simplement à une longueur de tableau pratique.
Maintenir un index temporel régulier et explicite
Triez les observations dans l’ordre chronologique et vérifiez les doublons, les trous et les unités. Dans pandas, décaler des valeurs par périodes diffère de décaler l’index avec une fréquence. Pour une référence décalée, les valeurs doivent être alignées avec les dates futures qu’elles prédisent.
Ne comblez pas silencieusement les trous avec des valeurs futures, car cela révélerait des informations indisponibles à l’origine de la prévision. Si la série est irrégulière, alignez explicitement les périodes calendaire correspondantes ou choisissez une autre référence. Les décisions concernant les données manquantes doivent être appliquées de façon cohérente au modèle et à la référence.
Un petit exemple mensuel
L’exemple utilise la bibliothèque standard Python et vingt-quatre observations synthétiques, espacées régulièrement par mois. Les douze premières valeurs représentent une année, les douze suivantes sont augmentées de deux unités. Ces données sont illustratives, non issues de mesures réelles ni représentatives de performances réelles.
Pour la deuxième année, un décalage de douze observations prédit les valeurs de la première année. Les douze premières positions n’ont pas de saison antérieure dans ce jeu, donc elles ne peuvent pas être évaluées par cette référence. Ne remplacez jamais ces références absentes par des observations futures.
# Illustrative monthly observations, January through December twice.
values = [10, 12, 15, 18, 20, 22, 21, 19, 17, 14, 12, 11]
values += [value + 2 for value in values]
period = 12
actual = values[period:]
predicted = values[:-period]
mae = sum(abs(a - p) for a, p in zip(actual, predicted)) / len(actual)
print(predicted[:3])
print(mae)
# Expected illustrative output:
# [10, 12, 15]
# 2.0Interpréter l’erreur dans les unités d’origine
Ici, chaque prévision a une erreur de deux unités, donc l’erreur absolue moyenne illustrative est de 2,0. Ce calcul concerne uniquement les données jouets fournies. Il ne dit rien sur une série réelle non observée ni sur l’acceptabilité de deux unités dans l’application.
Évaluez votre modèle sur les mêmes dates cibles et dans les mêmes unités. Comparez les erreurs par saison ainsi que globalement : une moyenne peut masquer des échecs répétés durant un mois critique. Documentez les observations exclues faute de cible valide ou de référence décalée disponible.
Séparer le passé du futur
Une division aléatoire entre entraînement et test peut placer des observations futures dans l’entraînement tandis que des dates antérieures apparaissent dans l’évaluation. Pour la prévision, utilisez une évaluation chronologique. À chaque origine, construisez les caractéristiques et ajustez tout prétraitement en utilisant uniquement les informations disponibles à cette date.
TimeSeriesSplit fournit par défaut des fenêtres d’entraînement et de test successives, avec des ensembles d’entraînement croissants. Son interprétation suppose des observations régulièrement espacées. Choisissez test_size et tout écart pour correspondre à la tâche ; la bibliothèque ne détermine pas pour vous l’horizon de prévision métier.
Distinguer les prévisions à un pas et à plusieurs pas
Dans une évaluation glissante, une valeur indisponible à une origine peut devenir connue avant l’origine suivante. Une prévision émise pour plusieurs mois futurs à la fois repose sur un ensemble d’information différent. N’évaluez pas cette prévision à plusieurs pas comme si chaque valeur intermédiaire était déjà disponible.
Un décalage saisonnier n’est utilisable que si l’observation de référence est connue à l’origine pertinente. Pour des horizons supérieurs à une période saisonnière, certaines références directes pointent dans l’intervalle de prévision et nécessitent une stratégie définie. Précisez cette stratégie avant de comparer les erreurs, pas après avoir vu les cibles.
Comprendre pourquoi la référence réussit ou échoue
Un changement de niveau, de tendance, un jour férié déplacé ou une modification du processus métier peut rendre la saison précédente un mauvais prédicteur. Examinez les résidus datés et les événements connus. Battre la référence sur une fenêtre inhabituelle est une preuve plus faible qu’une amélioration sur plusieurs fenêtres ultérieures représentatives.
Comparez avec une référence dernière observation ou une autre référence simple si la référence saisonnière échoue. Gardez les dates d’évaluation identiques. Évitez d’ajuster de nombreux modèles sur une dernière période réservée, au risque de la transformer en ensemble d’entraînement supplémentaire.
Décider si le modèle ajouté est utile
Un modèle plus complexe est utile s’il améliore suffisamment une mesure d’erreur pertinente sur des données futures pour justifier ses coûts de maintenance et d’exploitation. Précisez ce qui compte : erreur absolue typique, grandes erreurs, saisons particulières ou coût d’une surévaluation versus sous-évaluation.
Conservez la référence après déploiement. Des changements dans le processus des données peuvent annuler un avantage antérieur. Surveiller des erreurs comparables permet une décision concrète de maintenir, réviser ou simplifier le modèle, sans devoir invoquer une garantie de performance.
Points à vérifier
- Vérifier un index temporel régulier et une période saisonnière justifiée.
- Utiliser uniquement les observations connues à chaque origine de prévision.
- Évaluer modèle et référence sur les mêmes cibles ultérieures.
- Préciser l’horizon de prévision et la politique de gestion des données manquantes.
Champ d’application
Une référence saisonnière nécessite des observations antérieures correspondantes et une répétition suffisamment stable. Elle n’établit pas de relations causales, ne garantit pas la précision et ne gère pas automatiquement les ruptures structurelles, les horodatages irréguliers ou les prévisions à plusieurs pas.