Décomposer une série temporelle, c'est séparer ce que vous observez en ce qui l'explique vraiment : la tendance de fond (croissance ou déclin), la saisonnalité (répétition hebdomadaire, mensuelle ou annuelle), un éventuel cycle long, et ce qui reste (le résidu - le bruit inexpliqué). Sans cette lecture préalable, tout modèle de prévision est construit sur le brouillard. Avec elle, vous savez déjà ce que vous allez modéliser et ce que vous allez ignorer.
Ce guide couvre l'essentiel du sujet de manière progressive : les quatre composantes d'une série, la différence entre décomposition additive et multiplicative, la méthode STL (Seasonal-Trend decomposition using Loess), les tests de stationnarité ADF et KPSS, la différenciation, et la lecture des graphiques ACF/PACF. Avec des exemples chiffrés simples pensés pour un dirigeant ou un analyste PME qui veut comprendre - pas juste appliquer une recette.
Les quatre composantes d'une série temporelle
Toute série temporelle - ventes mensuelles, trafic web, consommation d'énergie, stock de pièces - peut se lire comme la superposition de quatre éléments distincts.
La tendance
La tendance est la direction générale de la série sur le long terme, une fois le bruit court terme ignoré. Elle peut être croissante (ventes qui progressent chaque année), décroissante (stock d'un produit en fin de vie), ou plate. Elle peut aussi être linéaire ou non linéaire : une tendance en S décrit par exemple un marché qui démarre lentement, s'emballe, puis sature.
Exemple concret : une PME de distribution alimentaire voit ses ventes annuelles progresser de 8 % par an depuis cinq ans. Cette progression régulière, une fois lissée des fluctuations saisonnières, constitue la tendance.
La saisonnalité
La saisonnalité est un pattern qui se répète à période fixe et connue : 7 jours pour la semaine, 12 mois pour l'année, 4 trimestres... Elle est prévisible par définition, c'est ce qui la distingue du bruit. C'est souvent la composante la plus utile à isoler pour un dirigeant : comprendre que 40 % du chiffre d'affaires tombe en novembre-décembre change la gestion des stocks et la trésorerie.
Distinction clé
Saisonnalité vs cycle : la saisonnalité a une période fixe et prévisible (chaque décembre). Le cycle a une durée variable, souvent pluriannuelle (cycles économiques, cycles de réapprovisionnement longs). En pratique, pour les PME, le cycle est souvent absorbé dans la tendance. On le modélise rarement séparément, sauf pour des horizons de prévision très longs.
Le cycle
Le cycle désigne des oscillations de durée variable sur plusieurs années, non liées à un calendrier fixe. Le cycle économique en est l'exemple canonique : expansion, point haut, contraction, point bas. Pour la majorité des PME et des horizons de prévision courants (moins de deux ans), il n'est pas modélisé séparément - il est inclus dans la tendance ou dans le résidu.
Le résidu
Le résidu (ou composante irrégulière) est ce qui reste une fois tendance, saisonnalité et cycle retirés. Il contient le bruit aléatoire, les chocs ponctuels (grève, pandémie, rupture de stock imprévue) et les erreurs de mesure. Un bon modèle de décomposition produit un résidu qui ressemble à du bruit blanc : sans structure, sans autocorrélation significative. Si le résidu a encore une structure, c'est que la décomposition est incomplète.
Décomposition additive vs multiplicative : laquelle choisir ?
Une fois les composantes identifiées, il faut choisir comment les combiner. Deux modèles dominent la pratique.
Le modèle additif
Dans un modèle additif, la série observée Y est simplement la somme de ses composantes :
Y = Tendance + Saisonnalité + Résidu
L'amplitude de la saisonnalité est constante dans le temps, indépendamment du niveau de la série. Si vous vendez 1 000 unités en juillet et 500 en janvier quand votre moyenne est 750, l'écart (+250 / -250) reste le même que votre moyenne soit à 750 ou à 1 500.
Le modèle additif convient quand les variations saisonnières restent stables en valeur absolue, quelle que soit la croissance de la série.
Le modèle multiplicatif
Dans un modèle multiplicatif, la série est le produit de ses composantes :
Y = Tendance x Saisonnalité x Résidu
La saisonnalité est ici un ratio (factor) par rapport au niveau. Si juillet vaut 1,33 fois la moyenne et janvier vaut 0,67 fois la moyenne, ces ratios restent constants - mais leurs valeurs absolues s'amplifient avec la croissance. Quand la tendance passe de 1 000 à 2 000, le pic de juillet passe de +330 à +660 en valeur absolue.
Règle de décision simple
Regardez si l'amplitude des pics saisonniers grandit avec le niveau de la série. Si vos courbes ressemblent à un entonnoir qui s'élargit, choisissez le modèle multiplicatif. Si l'amplitude reste visuellement constante, choisissez l'additif. Le modèle multiplicatif est très courant dans les données commerciales en croissance.
Note pratique : les deux modèles sont équivalents sous transformation logarithmique. Prendre le log d'une série multiplicative la transforme en série additive : log(Y) = log(T) + log(S) + log(R). C'est souvent l'approche la plus simple quand les librairies ne gèrent pas nativement le multiplicatif.
STL : la méthode de décomposition de référence
La décomposition STL (Seasonal-Trend decomposition using Loess) est aujourd'hui la méthode standard pour explorer une série temporelle. Publiée en 1990 par Cleveland et al. dans le Journal of Official Statistics, elle reste la référence notamment parce qu'elle gère des cas que les méthodes classiques ne couvrent pas bien.
Comment fonctionne STL
STL utilise LOESS - une régression locale pondérée - pour ajuster séparément la tendance et la saisonnalité. L'idée : plutôt qu'une courbe de tendance globale (polynomiale ou exponentielle imposée), STL estime la tendance localement, point par point, en utilisant uniquement les observations voisines. Résultat : une tendance beaucoup plus flexible, qui capte les changements de direction sans sur-paramétrer.
Deux paramètres principaux à régler : la longueur de la fenêtre saisonnière (period) et la longueur de la fenêtre de tendance. Plus ces fenêtres sont larges, plus les composantes sont lissées.
Avantages concrets de STL vs décomposition classique
- Saisonnalité évolutive. STL accepte une saisonnalité qui change d'amplitude avec le temps - ce que la décomposition classique (moving average) ne peut pas faire.
- Robustesse aux anomalies. En mode robuste, STL pondère à la baisse les points aberrants, qui ne contaminent pas l'estimation de la tendance ou de la saisonnalité.
- Flexibilité de la période. STL fonctionne avec n'importe quelle période (7 jours, 52 semaines, 12 mois), alors que certaines méthodes classiques n'acceptent que 12 ou 4.
En Python, STL est disponible via statsmodels avec quelques lignes de code :
from statsmodels.tsa.seasonal import STL
stl = STL(serie_mensuelle, period=12, robust=True)
result = stl.fit()
result.plot()
Le graphique produit affiche les quatre composantes superposées : série originale, tendance, saisonnalité, résidu. C'est le premier visuel à produire systématiquement sur toute nouvelle série temporelle.
Quand STL ne suffit pas
STL est un outil d'exploration et de prétraitement, pas un modèle de prévision. Elle ne génère pas de prévisions par elle-même. Pour des séries avec plusieurs saisonnalités imbriquées (journalière + hebdomadaire + annuelle dans des données horaires), des méthodes comme MSTL (Multiple STL) ou Prophet sont plus adaptées. Pour la prévision pur, STL peut alimenter un ARIMA sur les résidus ou s'intégrer dans un pipeline ETS.
Stationnarité : pourquoi ça compte et comment la tester
Une série est stationnaire si sa moyenne, sa variance et sa structure d'autocorrélation restent constantes dans le temps. C'est une hypothèse technique requise par la plupart des modèles de prévision classiques - et particulièrement par ARIMA.
Intuitivement : si votre série de ventes a une tendance croissante, sa moyenne en 2024 est différente de sa moyenne en 2020. Elle n'est pas stationnaire. Un modèle ARIMA entraîné sur des données 2020-2022 va sous-prévoir 2024, parce qu'il a appris une moyenne trop basse. Rendre la série stationnaire avant de modéliser règle ce problème structurel.
Le test ADF
Le test ADF (Augmented Dickey-Fuller) est le test le plus utilisé. Son hypothèse nulle : la série contient une racine unitaire, c'est-à-dire qu'elle est non stationnaire. Une p-value inférieure à 0,05 permet de rejeter cette hypothèse et de conclure à la stationnarité.
Piège fréquent : une série avec saisonnalité forte peut passer le test ADF (p-value faible) tout en n'étant pas stationnaire au sens statistique complet. ADF teste la non-stationnarité en tendance, pas toujours la non-stationnarité saisonnière.
Le test KPSS
Le test KPSS fonctionne à l'envers : son hypothèse nulle est que la série est stationnaire. Une p-value inférieure à 0,05 signifie qu'on rejette la stationnarité. Utiliser ADF et KPSS en combinaison est plus robuste que l'un seul :
| ADF | KPSS | Conclusion |
|---|---|---|
| p < 0,05 (rejette racine unitaire) | p > 0,05 (ne rejette pas stationnarité) | Série stationnaire - OK pour modéliser |
| p > 0,05 (ne rejette pas racine unitaire) | p < 0,05 (rejette stationnarité) | Série non stationnaire - différencier |
| p < 0,05 | p < 0,05 | Contradiction - non-stationnarité partielle ou changeante |
| p > 0,05 | p > 0,05 | Contradiction - résultats peu informatifs, examiner visuellement |
La différenciation
Quand une série n'est pas stationnaire, la différenciation est le remède habituel : on remplace chaque valeur par la différence avec la valeur précédente. Une différenciation d'ordre 1 calcule Y(t) - Y(t-1). Cela supprime une tendance linéaire. Si la série est encore non stationnaire, une seconde différenciation peut être nécessaire (ordre 2 - rare en pratique).
Pour une saisonnalité persistante (la série en janvier de cette année ressemble toujours à janvier de l'année dernière), on applique une différenciation saisonnière : Y(t) - Y(t-12) pour des données mensuelles avec saisonnalité annuelle. C'est le "D" dans le SARIMA(p,d,q)(P,D,Q)[S].
ACF et PACF : lire la structure de dépendance d'une série
Une fois la série rendue stationnaire, les graphiques ACF et PACF sont les outils pour identifier sa structure interne - et choisir les bons paramètres de modèle.
L'ACF (Autocorrelation Function)
L'ACF mesure la corrélation entre la série et elle-même décalée de k périodes (lag k). L'ACF au lag 1 est la corrélation entre Y(t) et Y(t-1). L'ACF au lag 12 est la corrélation entre Y(t) et Y(t-12). Si votre série a une saisonnalité annuelle (données mensuelles), vous verrez des pics significatifs à lag 12, 24, 36... dans l'ACF.
Un résidu bien décomposé doit avoir une ACF dont toutes les barres restent dans les intervalles de confiance (bandes bleues en pointillés). Si des barres dépassent encore, la décomposition a laissé une structure non expliquée.
Le PACF (Partial Autocorrelation Function)
Le PACF mesure la même corrélation, mais en éliminant l'effet des lags intermédiaires. La corrélation partielle au lag 3 ne capture que la relation directe entre Y(t) et Y(t-3), une fois retiré ce qu'expliquent déjà Y(t-1) et Y(t-2).
Comment lire ACF/PACF pour choisir un modèle
Le principe, résumé par Robert Nau de Duke University, est le suivant :
- ACF qui décroit lentement + PACF qui coupe net au lag p : processus AR(p). Le paramètre p d'ARIMA vaut p.
- PACF qui décroit lentement + ACF qui coupe net au lag q : processus MA(q). Le paramètre q d'ARIMA vaut q.
- ACF et PACF décrois tous les deux progressivement : processus ARMA(p,q), paramètres à affiner par critère AIC/BIC.
Exemple chiffré
Vous analysez des ventes hebdomadaires. Après différenciation d'ordre 1 pour éliminer la tendance, l'ACF montre un pic significatif uniquement au lag 1 (0,52) et rien au-delà. Le PACF décroit lentement. Signature MA(1) : un modèle ARIMA(0,1,1) est un bon point de départ. Si vous voyez aussi des pics à lag 52 (saisonnalité annuelle), vous étendez en SARIMA(0,1,1)(0,1,1)[52].
Pourquoi décomposer AVANT de modéliser
La décomposition n'est pas une fin en soi. C'est une étape de diagnostic qui conditionne toutes les décisions suivantes. Voici pourquoi elle est non négociable avant de lancer ARIMA, Prophet ou un modèle deep learning.
- Choisir le bon type de modèle. Si la décomposition révèle une tendance non linéaire forte et une saisonnalité qui évolue dans le temps, un ARIMA simple va sous-performer. Prophet ou un modèle par composantes sera mieux adapté. Voir la comparaison ARIMA vs Prophet vs deep learning.
- Détecter les anomalies avant qu'elles parasitent l'entraînement. Si un COVID, une grève ou une rupture de stock est visible dans les résidus STL comme un spike isolé, vous pouvez l'imputer ou le traiter avant d'entraîner le modèle. Sinon, il va apprendre cette anomalie comme un pattern réel.
- Valider la qualité des données. Des résidus avec une structure non aléatoire signalent un problème : données manquantes mal interpolées, granularité inadaptée, fusion de deux populations distinctes. Il vaut mieux le savoir avant de passer trois jours à paramétrer un modèle.
- Calibrer les métriques d'évaluation. Si la série a une forte saisonnalité, le MAPE sera naturellement meilleur sur les périodes hautes (dénominateur grand) que sur les périodes basses. La connaissance de la structure saisonnière aide à interpréter correctement les métriques - voir notre guide sur l'évaluation d'une prévision : MAPE, MASE et backtesting.
- Réduire la charge de travail de modélisation. Une fois la tendance et la saisonnalité connues, vous pouvez les modéliser séparément (sur les résidus) plutôt que de demander au modèle de les apprendre seul dans les données brutes. C'est souvent plus rapide et plus interprétable.
Pour aller plus loin sur la mise en oeuvre concrète d'une prévision à partir de séries temporelles, notre article prévision des ventes par IA et séries temporelles couvre le pipeline de bout en bout - de la collecte des données à la mise en production du modèle.
Vos données méritent mieux qu'une intuition
Vos ventes, stocks ou flux ont-ils une structure exploitable ? Analysons vos séries temporelles et construisons la prévision adaptée a votre contexte.
Pour aller plus loin
- Prévision des ventes par IA et séries temporelles - pipeline complet de la collecte a la mise en production.
- ARIMA vs Prophet vs deep learning pour la prévision - comparatif des approches selon le contexte.
- Evaluer une prévision : MAPE, MASE et backtesting - les bonnes métriques et comment les interpréter.
- Variables exogenes dans les séries temporelles - intégrer météo, promotions et jours fériés dans vos modèles.
- Top librairies Python pour la prévision de séries temporelles - statsmodels, Prophet, Darts, NeuralForecast.
- Prévision des stocks par IA pour les PME - cas concrets et ordres de grandeur 2026.
- Détection d'anomalies dans les séries temporelles capteurs - méthodes et outils pour l'industrie.
- IA prédictive sur mesure pour PME et ETI - notre offre de prévision et modèles prédictifs.
- STL decomposition - Forecasting: Principles and Practice (Hyndman & Athanasopoulos) - référence académique en accès libre.
- Documentation STL statsmodels - exemples de code Python prêts a l'emploi.