Didacticiel — Prévision & saisonnalité
Séries temporelles & prévision
Prévoir la demande. Anticiper la consommation énergie. Détecter une dérive capteur. Trois usages
quotidiens en production et en logistique — tous des problèmes de séries temporelles.
Importez votre CSV (date, valeur) : décomposition STL, test ADF, ACF/PACF, fit
multi-modèles (Naïve saisonnier, Holt-Winters, ARIMA, SARIMA), MAPE train vs test, forecast avec
IC 95 %. 100 % navigateur via Pyodide + statsmodels.
1. Qu'est-ce qu'une série temporelle ?
Une série temporelle est une suite d'observations ordonnées dans le temps avec un pas régulier : horaire, journalier, hebdomadaire, mensuel. Trois cas d'usage industriels que couvre ce didacticiel :
- Prévision de demande — logistique, dimensionnement du stock, plan de charge.
- Consommation énergie — anticiper les pics, négocier les contrats, piloter l'effacement.
- Dérive capteur — détecter une perte de précision avant qu'elle ne contamine le produit.
Une série se décompose en quatre composantes :
yt = Tt (tendance) + St (saison) + Ct (cycle) + Rt (résidu)
Modèle additif. Version multiplicative si l'amplitude saisonnière croît avec le niveau.
Additif vs multiplicatif
- Additif :
y = T + S + R. Amplitude saisonnière constante. - Multiplicatif :
y = T × S × R. Amplitude qui grandit avec le niveau.
Test rapide : tracer l'écart-type glissant. S'il est stable → additif. S'il croît avec la moyenne → multiplicatif. Sur une série multiplicative, passer par log(y) permet de revenir au cas additif.
Saison vs cycle
- Saison : période fixe et connue (7 jours, 12 mois, 24 h). Prévisible, modélisable.
- Cycle : période variable (cycle économique 3-10 ans, cycle usure machine). Plus difficile à modéliser.
La décomposition STL (Seasonal-Trend decomposition using Loess) isole ces composantes robustement, y compris quand la saisonnalité évolue dans le temps — référence de fait sur données réelles.
2. Stationnarité & différenciation
Une série est stationnaire si sa moyenne, sa variance et sa structure d'autocorrélation sont stables dans le temps. C'est le prérequis de presque tous les modèles ARMA/ARIMA — sans stationnarité, les IC prédiction sont fallacieux (phénomène de régression fallacieuse, Granger & Newbold 1974).
Test ADF — Augmented Dickey-Fuller
Hypothèses :
H0: la série a une racine unitaire (non stationnaire).H1: pas de racine unitaire (stationnaire).
Lecture :
p-value < 0.05 → on rejette H0 → série stationnaire
p-value ≥ 0.05 → on ne peut pas rejeter H0 → différencier.
Différenciation
L'opération y't = yt − yt−1 élimine une
tendance. Parameter d dans ARIMA(p, d, q). Différenciation saisonnière
yt − yt−s pour éliminer la saison (P, D, Q de SARIMA).
Protocole :
- Tester ADF sur y brut.
- Si non stationnaire → différencier (d += 1) et re-tester.
- Stopper dès que stationnaire. En pratique : d = 0, 1 ou 2 (jamais plus).
- Si saison : tester aussi la différence saisonnière avec D = 1.
Piège : sur-différencier introduit de l'auto-corrélation parasite (théorème de Slutzky). Si après d=1 la série est stationnaire, ne pas aller plus loin.
3. Auto-corrélation — ACF & PACF
L'ACF (AutoCorrelation Function) mesure la corrélation entre
yt et ses décalages yt−k pour k = 1, 2, …
La PACF (Partial ACF) mesure la corrélation après avoir retiré l'effet
des décalages intermédiaires — c'est la signature de la structure AR.
Diagnostic modèle par ACF / PACF
| Modèle | ACF | PACF |
|---|---|---|
| AR(p) | décroît lentement | coupe après lag p |
| MA(q) | coupe après lag q | décroît lentement |
| ARMA(p, q) | décroît | décroît |
| Bruit blanc | tout dans les bandes ±2/√n | tout dans les bandes |
Bandes de confiance : approximativement ±1.96/√n pour α=5 %. Un pic qui sort significativement indique une corrélation réelle. Un pic à lag s (7, 12, 24) signale une saisonnalité non traitée.
Signal de bruit blanc : ACF et PACF entièrement dans les bandes → aucun modèle temporel n'apportera de valeur. Utiliser la moyenne comme référence.
4. Les modèles de prévision
Baselines à battre (à comparer systématiquement)
- Naïve :
ŷt+1 = yt. Dernière valeur observée. - Naïve saisonnier :
ŷt+1 = yt+1−s. Valeur de la même période précédente. Excellent sur saisons fortes. - Moyenne globale :
ŷ = ȳ. Pour bruit blanc.
Lissage exponentiel
- SES (Simple Exponential Smoothing) : niveau seul.
Lt = αyt + (1−α)Lt−1. Pas de tendance, pas de saison. - Holt (lissage double) : niveau + tendance. Deux paramètres α (niveau), β (tendance).
- Holt-Winters (lissage triple) : niveau + tendance + saison. Trois paramètres α, β, γ. Versions additive et multiplicative.
Holt-Winters additif :
Lt = α(yt − St−s) + (1−α)(Lt−1 + Bt−1)
Bt = β(Lt − Lt−1) + (1−β)Bt−1
St = γ(yt − Lt) + (1−γ)St−s
ŷt+h = Lt + hBt + St+h−s
ARIMA & SARIMA
- ARIMA(p, d, q) : AutoRegressive Integrated Moving Average. p ordre AR, d différenciations, q ordre MA.
- SARIMA(p, d, q)(P, D, Q)s : ARIMA saisonnier de période s.
Identification : lire ACF/PACF sur la série différenciée, essayer plusieurs (p, q), sélectionner par AIC, vérifier résidus (ACF dans les bandes, test Ljung-Box p > 0.05).
Arbre de décision — quel modèle pour quelle série ?
| Structure | Modèle recommandé | Complexité |
|---|---|---|
| Pas de tendance, pas de saison | Naïve / Moyenne / SES | Faible |
| Tendance, pas de saison | Holt, ARIMA(p,1,q) | Moyenne |
| Saison, pas de tendance | Naïve saisonnier, HW | Moyenne |
| Tendance + saison additive | Holt-Winters add., SARIMA | Élevée |
| Tendance + saison multiplicative | Holt-Winters mult. | Élevée |
| Bris de rupture | Segmenter puis modéliser | Élevée |
| Bruit blanc | Moyenne (ne pas sur-modéliser) | Nulle |
Règle d'or : toujours comparer au naïve saisonnier. S'il bat votre modèle complexe, c'est votre modèle qui est mauvais.
5. Évaluation — train/test, MAPE, RMSE, IC prédiction
Split chronologique (jamais de shuffle !)
Sur une série temporelle, le shuffle est une faute grave : il met des données du futur dans le train. Le split doit être chronologique : 80 % train en début, 20 % test en fin. Pour modèles critiques, rolling validation (expanding window).
Métriques
| Métrique | Formule | Bon pour | Attention |
|---|---|---|---|
| MAPE | Σ|y−ŷ| / |y| · 100/n | interprétation % | valeurs proches de 0 (divergence) |
| RMSE | √(Σ(y−ŷ)²/n) | pénaliser gros écarts | unités de y |
| MAE | Σ|y−ŷ|/n | robuste aux outliers | pas de pénalisation quadratique |
| AIC | 2k − 2 ln(L) | sélection modèle intra-famille | pas comparable cross-famille |
Cible industrielle typique : MAPE < 10 % pour une prévision utilisable en pilotage. MAPE < 5 % pour des usages critiques (dimensionnement stock sécurité, contrats énergie).
IC prédiction vs IC moyenne
- IC moyenne (étroit) : plage où se situe la vraie valeur moyenne.
- IC prédiction (large) : plage où se situera une observation future.
Pour du pilotage opérationnel (stock de sécurité, capacité pic) → IC prédiction (plus large, inclut le bruit résiduel). Pour l'analyse statistique → IC moyenne.
6. Quand utiliser quel modèle — tableau de décision
| Cas | Signal à repérer | Modèle recommandé |
|---|---|---|
| Demande stable + saison hebdo | Pic ACF lag 7 | Naïve saisonnier ou HW add. s=7 |
| Consommation horaire | Pic ACF lag 24 | SARIMA (p,d,q)(P,D,Q)24 |
| Ramp-up linéaire | Tendance claire, pas de saison | Holt |
| Site en expansion + saison | Amplitude saison qui grandit | Holt-Winters multiplicatif |
| Random walk (prod. cumulée) | ADF non stationnaire, lag 1 ACF fort | ARIMA(1,1,0) |
| Capteur bruit blanc | ACF et PACF dans les bandes | Moyenne globale |
| Nouvelle machine / bris | Changement de niveau brutal | Segmenter + HW sur post |
| Dérive capteur | Cône dans les résidus | Holt + transformation log ou GARCH |
Vos données
CSV deux colonnes : date,valeur. Date ISO (YYYY-MM-DD) ou horaire
(YYYY-MM-DD HH:00). Jeu par défaut : consommation électrique ligne de production
(730 jours, tendance +2 %/an, saison hebdo + annuelle).
Paramètres du modèle
Protocole de préparation des données
- Pas régulier obligatoire — horaire, quotidien, hebdo, mensuel. Les trous doivent être imputés ou marqués.
- Historique minimum : 3× la saison (21 jours pour saison 7, 36 mois pour saison 12).
- Valeurs aberrantes : vérifier avant fit. Un outlier biaise fortement Holt-Winters.
- Bris de rupture : si une nouvelle machine / ligne a démarré, couper la série.
- Date ISO :
YYYY-MM-DDouYYYY-MM-DD HH:00. Eviter dd/mm/yyyy (ambigu).
Exercices guidés
Huit cas industriels réels, chacun avec son dataset prêt à charger et sa solution corrigée. Cherchez le bon modèle avant de cliquer la solution.
facile Logistique ts-ex1 — Demande hebdo pâtisserie industrielle
Contexte. Une pâtisserie industrielle livre 5 grandes enseignes avec une demande stable au mois mais fortement marquée par la semaine : pic en début de semaine, creux le dimanche. 120 jours d'historique.
Question. Quel modèle donne le meilleur MAPE en moins de 10 s ? Quelle est la saison ? Combien de jours de prévision sont fiables ?
Voir la solution
Résultat attendu : 120 observations · pas quotidien · meilleur modèle : Naïve saisonnier · MAPE cible ≈ 3.5 %
Interprétation. La saison = 7 jours. Sans tendance ni dérive, le naïve saisonnier (prédire yt = yt-7) fait mieux que tout modèle plus complexe. MAPE ≈ 3-4 %. Horizon fiable : 1 à 2 semaines.
Piège à éviter. Utiliser une moyenne mobile large lisse la saison et donne un MAPE de 8-10 %. La saison n'est pas du bruit — c'est de l'information utile à conserver.
facile Production ts-ex2 — Ramp-up production nouvel atelier
Contexte. Nouvel atelier en montée de charge — la production quotidienne augmente régulièrement depuis 90 jours (linéairement). Pas de saisonnalité claire.
Question. Quel modèle capte correctement la tendance ? Pourquoi un lissage exponentiel simple (SES) échoue ici ?
Voir la solution
Résultat attendu : 90 observations · pas quotidien · meilleur modèle : Holt · MAPE cible ≈ 2.5 %
Interprétation. Holt (lissage double) capture tendance + niveau. MAPE ≈ 2-3 %. SES rate la tendance : ses prévisions retardent systématiquement → biais. Régression linéaire donne des résultats comparables à Holt sur ce cas.
Piège à éviter. Appliquer un SES : prévisions toujours plates → sous-estimation croissante. SES n'a pas de composante tendance par construction.
intermédiaire Énergie ts-ex3 — Consommation énergie croissante avec saisonnalité
Contexte. Consommation électrique mensuelle d'un site en expansion (180 jours). L'amplitude des oscillations grandit avec le niveau moyen (série multiplicative).
Question. Quel modèle faut-il choisir ? Holt-Winters additif ou multiplicatif ? Pourquoi l'additif sur-estime les pics ?
Voir la solution
Résultat attendu : 180 observations · pas quotidien · meilleur modèle : Holt-Winters · MAPE cible ≈ 4.5 %
Interprétation. Série multiplicative (amplitude ~ niveau). Holt-Winters multiplicatif est le bon choix. MAPE ≈ 4-5 %. La variante additive traite les saisons comme si elles étaient fixes en valeur absolue et sur-estime en fin de période.
Piège à éviter. Appliquer Holt-Winters additif : erreurs qui grandissent avec le temps. Test simple : la décomposition STL additive laisse-t-elle une tendance dans les résidus ? Oui → multiplicatif nécessaire.
facile Instrumentation ts-ex4 — Capteur bruit blanc — rien à prédire
Contexte. Un capteur de pression relève 100 mesures indépendantes. ACF nulle à tous les lags. Le manager veut quand même prédire les 10 prochaines valeurs.
Question. Quelle est la meilleure prévision ? Quel MAPE peut-on raisonnablement atteindre ? Pourquoi un ARIMA (p,d,q) complexe n'apporte rien ?
Voir la solution
Résultat attendu : 100 observations · pas quotidien · meilleur modèle : Naïve · MAPE cible ≈ 8 %
Interprétation. Sur bruit blanc, la meilleure prévision est la moyenne globale (équivalent à la Naïve moyenne). MAPE ≈ 7-8 % (= sigma / moyenne × √(2/π)). Tout ARIMA complexe sur-apprend le bruit — MAPE test pire que la moyenne. L'ACF qui reste dans les bandes de confiance est LE test diagnostique.
Piège à éviter. Un ARIMA(2,0,2) donne un R² élevé en train — mais MAPE test plus mauvais que la moyenne. C'est le classique overfitting du bruit.
intermédiaire Production ts-ex5 — Production cumulée — tendance stochastique
Contexte. Production cumulée d'une ligne, avec des à-coups aléatoires qui décalent le niveau. 140 points. La série n'est visuellement pas stationnaire — tendance qui dérive sans cap fixe.
Question. Quel test de stationnarité utiliser ? Combien de différenciations faut-il ? Pourquoi un ARIMA(1,1,0) est-il adapté ?
Voir la solution
Résultat attendu : 140 observations · pas quotidien · meilleur modèle : ARIMA · MAPE cible ≈ 5 %
Interprétation. Le test ADF (Augmented Dickey-Fuller) rejette la stationnarité → différencier une fois (d=1). Sur la série différenciée, l'ACF décroît → AR(1) → ARIMA(1,1,0). MAPE ≈ 4-6 %. Utiliser Holt donne des résultats proches (c'est son équivalent state-space).
Piège à éviter. Fitter un ARIMA sans différencier : paramètres instables, résidus autocorrélés, IC prédiction qui ne tiennent pas. La stationnarité est un prérequis, pas une option.
avancé Énergie ts-ex6 — Consommation électrique horaire — SARIMA s=24
Contexte. Relevés horaires de consommation électrique d'un atelier sur 10 jours = 240 points. Cycle jour/nuit très marqué + tendance hebdo légère.
Question. Quelle saison choisir ? (s=24 ? s=168 ?) Quel ordre (p,d,q)(P,D,Q)s essayer en première approche ? Comment valider ?
Voir la solution
Résultat attendu : 240 observations · pas horaire · meilleur modèle : SARIMA · MAPE cible ≈ 3.5 %
Interprétation. La saison principale est s = 24 (cycle jour). Essai initial : SARIMA(1,0,1)(1,1,1)24. MAPE ≈ 3-4 %. Vérifier résidus (ACF dans les bandes) + Ljung-Box p>0.05. Holt-Winters multi-saisonnier est plus souple si s=168 aussi pertinent, mais statsmodels ne le gère pas directement.
Piège à éviter. Oublier la différenciation saisonnière (D=0) : les résidus restent fortement auto-corrélés à lag 24. Lire l'ACF : pics à 24, 48, 72 → signal fort que D=1 est nécessaire.
intermédiaire Production ts-ex7 — Bris de rupture — nouvelle machine
Contexte. Installation d'une nouvelle machine au jour 60 : le niveau de production passe brutalement de 500 à 800 unités/jour. Saisonnalité hebdo conservée. 120 points.
Question. Faut-il fitter un modèle sur toute la série ? Comment traiter le bris de rupture ? Que valent les métriques si on ignore le break ?
Voir la solution
Résultat attendu : 120 observations · pas quotidien · meilleur modèle : Holt-Winters · MAPE cible ≈ 6 %
Interprétation. Fitter sur la partie post-rupture uniquement (60 derniers jours). Holt-Winters saison=7 → MAPE ≈ 5-7 %. Fitter sur toute la série donne des paramètres absurdes et un MAPE 3× pire. Alternative : ajouter une variable indicatrice pre/post dans un modèle de régression.
Piège à éviter. Ignorer le bris : le modèle apprend une "tendance" fictive qui explose les prévisions. Un œil sur la série brute avant tout fit est obligatoire.
avancé Instrumentation ts-ex8 — Dérive capteur — hétéroscédasticité
Contexte. Un capteur dont la précision se dégrade progressivement (variance du bruit qui augmente avec le temps). Tendance linéaire + bruit hétéroscédastique. 150 points.
Question. Les IC prédiction sont-ils corrects avec un modèle classique ? Comment détecter l'hétéroscédasticité ? Quelle action corrective ?
Voir la solution
Résultat attendu : 150 observations · pas quotidien · meilleur modèle : Holt · MAPE cible ≈ 4 %
Interprétation. Holt capte bien la tendance — MAPE ≈ 3-4 %. MAIS les IC prédiction sont sous-estimés sur la fin : ils supposent variance constante. Le graphique des résidus montre un cône qui s'ouvre dans le temps (hétéroscédasticité). Action : 1) re-calibrer le capteur, 2) transformer log ou racine pour stabiliser la variance, 3) utiliser un modèle GARCH si la dérive est intrinsèque au procédé.
Piège à éviter. Annoncer un IC 95 % = ±X alors que la variance réelle a doublé. Résultat : alarmes fausses et fiabilité perçue qui chute. Toujours tracer résidus vs temps après fit.
Formateur / responsable production ? Consultez le guide pédagogique complet (plan 2h, FAQ, QCM 10 questions, 8 pièges classiques, références Box & Jenkins, Hyndman FPP3).