Détecter une anomalie sur un capteur industriel, ce n'est pas la même chose que détecter une fraude sur des transactions bancaires ni qu'inspecter une pièce par vision. Ici, le signal est continu, temporellement ordonné, et l'anomalie se lit souvent dans la forme d'une courbe sur plusieurs minutes - pas dans un seul point. Les méthodes statistiques classiques (z-score, STL, seuils dynamiques), le Matrix Profile, l'Isolation Forest et les autoencodeurs LSTM constituent aujourd'hui la boîte à outils de référence pour ce problème précis.
Ce guide couvre la taxonomie des anomalies sur séries temporelles, les méthodes du plus simple au plus avancé, les exigences pour la détection en streaming, et les pièges d'évaluation sur des événements rares. Le tout orienté vers un contexte industriel concret : capteurs de vibration, température, courant, pression - avec des données déséquilibrées et des contraintes de latence.
Trois types d'anomalies à distinguer avant de choisir une méthode
Avant d'ouvrir une librairie Python, il faut savoir ce qu'on cherche. Sur une série temporelle de capteurs, les anomalies se répartissent en trois familles distinctes - et chaque famille appelle des méthodes différentes.
Anomalie ponctuelle
Un point isolé sort brutalement de la norme. Pic de température soudain, surtension électrique d'une milliseconde, vibration isolée. C'est la plus simple à détecter : un z-score ou un seuil fixe suffit souvent. C'est aussi la moins intéressante industriellement : une panne sérieuse s'annonce rarement par un seul point aberrant.
Anomalie contextuelle
La valeur serait normale dans un autre contexte temporel, mais pas au moment où elle apparaît. Une température de 85°C est normale en phase de montée en chauffe d'un four, anormale en phase de repos. Détecter ce type d'anomalie exige de modéliser le contexte - heure, cycle machine, phase d'opération - et d'y conditionner le seuil d'alerte.
Anomalie collective
Chaque point pris séparément semble normal, mais la séquence est anormale. Un roulement en début de défaillance peut montrer des vibrations d'amplitude normale mais avec une fréquence légèrement décalée par rapport à la fréquence caractéristique du composant. Aucun seuil sur les valeurs brutes ne le captera. Il faut regarder le pattern sur une fenêtre temporelle.
Repere de diagnostic
En maintenance prédictive industrielle, les anomalies qui signalent réellement une défaillance imminente sont presque toujours collectives ou contextuelles. Les anomalies ponctuelles sont souvent du bruit capteur. Commencez par identifier le type avant de choisir l'outil.
Méthodes statistiques : du z-score robuste aux seuils dynamiques
Les méthodes statistiques sont sous-estimées. Elles sont interprétables, rapides, compatibles avec le temps réel, et suffisantes pour une grande partie des cas industriels concrets.
Z-score robuste et ESD (Extreme Studentized Deviate)
Le z-score classique est sensible aux outliers car il utilise la moyenne et l'écart-type, eux-mêmes contaminés par les valeurs extrêmes. La variante robuste utilise la médiane et le MAD (Median Absolute Deviation) :
Score robuste = 0.6745 × (x - médiane) / MAD
Un score supérieur à 3,5 est conventionnellement un candidat anomalie. C'est résistant aux outliers multiples et ne nécessite aucun paramètre distributional. L'algorithme ESD (H-ESD de Twitter / AnomalyDetection) étend ce principe pour détecter plusieurs anomalies simultanément dans une fenêtre, avec une correction statistique qui contrôle le taux de fausse alarme.
Décomposition STL et résidus
Pour des signaux avec saisonnalité (cycle journalier, hebdomadaire, saisonnier), la décomposition STL (Seasonal-Trend decomposition via Loess) sépare la série en trois composantes : tendance, saisonnalité, résidu. L'anomalie se cherche dans les résidus, une fois tendance et saisonnalité retirées.
Concrètement : on décompose le signal historique normal, on modélise la distribution des résidus, et on alerte quand un résidu dépasse un certain percentile. C'est robuste face aux dérives lentes (une machine qui chauffe progressivement avec les saisons) car la tendance est capturée par STL plutôt que confondue avec une anomalie.
EWMA et seuils adaptatifs
La Exponentially Weighted Moving Average (EWMA) lisse le signal en pondérant les points récents plus fortement que les anciens. L'écart entre le signal brut et l'EWMA constitue un score d'anomalie en temps réel, mis à jour point par point. Le paramètre alpha contrôle la réactivité (alpha proche de 1 = très réactif, proche de 0 = inertie élevée). Les bandes de contrôle EWMA classiques des statistiques de processus (SPC) sont directement applicables aux données capteurs continues.
Matrix Profile : l'approche la plus puissante pour les anomalies de forme
Le Matrix Profile est une structure de données qui, pour chaque sous-séquence de longueur m de la série, stocke la distance z-normalisée à sa plus proche voisine dans la série. Une sous-séquence avec une grande distance à son voisin (appelée "discord") ne ressemble à rien d'autre dans l'historique : c'est la définition opérationnelle d'une anomalie collective.
L'algorithme STOMP (puis SCRIMP et leurs variantes) calcule cela efficacement. La librairie Python STUMPY en offre une implémentation parallélisée (Numba + Dask), capable de traiter des dizaines de millions de points sur CPU ou GPU.
Avantages concrets :
- Aucune hypothèse sur la distribution des données.
- Pas de seuil à calibrer manuellement : on cherche les scores les plus élevés du Matrix Profile.
- Détecte aussi bien les anomalies ponctuelles (sous-séquence courte) que les anomalies de forme (sous-séquence longue).
- Le paramètre m (longueur de la sous-séquence) est le seul vrai paramètre à choisir - il correspond à la durée minimale d'un pattern intéressant.
Limite : le calcul complet du Matrix Profile est O(n² × m) en mémoire, ce qui devient contraignant sur des séries très longues sans optimisation streaming.
ML non supervisé : Isolation Forest et LOF sur fenêtres glissantes
Les méthodes ML non supervisées traitent chaque fenêtre temporelle comme un vecteur de features, et cherchent les vecteurs qui s'isolent du reste. La clé est la construction des features : elle conditionne entièrement la qualité de la détection.
Isolation Forest
L'Isolation Forest isole les anomalies en construisant des arbres de décision aléatoires : un point anormal est isolé en peu de coupures, un point normal nécessite beaucoup de coupures pour être séparé. Le score d'anomalie est inversement proportionnel à la profondeur moyenne d'isolement.
Pour des capteurs, on applique l'Isolation Forest sur des fenêtres glissantes featurisées : moyenne, écart-type, min, max, skewness, kurtosis, énergie FFT (pour les vibrations) de chaque fenêtre de N points. C'est rapide, scalable, et fonctionne bien pour les anomalies ponctuelles et les shifts de distribution.
LOF (Local Outlier Factor)
Le LOF compare la densité locale d'un point à celle de ses voisins. Un point dans une zone peu dense entourée de zones denses a un LOF élevé - c'est un outlier local. Plus sensible aux clusters que l'Isolation Forest, mais aussi plus coûteux en mémoire (O(n²) en théorie, optimisé avec des index en pratique). Utile quand les anomalies se trouvent dans des sous-espaces - pas dans la densité globale.
| Méthode | Type d'anomalie | Données requises | Interprétabilité | Temps réel |
|---|---|---|---|---|
| Z-score robuste / ESD | Ponctuelle | Peu (fenêtre glissante) | Elevée | Oui |
| STL + résidus | Contextuelle | Quelques semaines d'historique | Elevée | Partiel |
| EWMA / SPC | Ponctuelle, drift | Peu | Elevée | Oui |
| Matrix Profile | Collective, forme | Historique normal | Moyenne | Partiel (STUMPY streaming) |
| Isolation Forest | Ponctuelle, shift | Historique normal | Faible | Oui (inference) |
| LOF | Locale, cluster | Historique normal | Faible | Difficile |
| Autoencoder (AE) | Collective, complexe | Beaucoup (normaux) | Tres faible | Oui (inference) |
| LSTM-AE | Séquentielle, collective | Beaucoup (normaux) | Tres faible | Oui (inference) |
Deep learning : autoencodeurs et LSTM-AE pour les anomalies séquentielles
Le deep learning entre en jeu quand les anomalies dépendent de la dynamique temporelle sur des horizons longs - ou quand le signal est multivarié avec des inter-dépendances complexes entre capteurs.
Autoencoder (AE) et erreur de reconstruction
Un autoencoder est entraîné uniquement sur des données normales pour compresser puis reconstruire le signal. Sur des données normales, l'erreur de reconstruction est faible. Sur une anomalie, la compression perd de l'information anormale, et l'erreur de reconstruction explose. Le score d'anomalie = erreur de reconstruction (MSE ou MAE par point).
L'AE convolutionnel (Conv-AE) est adapté aux motifs locaux courts. L'AE LSTM (LSTM-AE) est adapté quand les dépendances temporelles s'étendent sur des dizaines à des milliers de pas de temps - typiquement des vibrations de machines tournantes avec des cycles de plusieurs secondes.
LSTM-AE : architecture de référence
L'architecture classique pour les capteurs industriels :
- Encodeur : 2 couches LSTM qui compriment la séquence d'entrée (fenêtre de N points) en vecteur latent.
- Décodeur : 2 couches LSTM qui reconstruisent la séquence depuis le vecteur latent.
- Score d'anomalie : erreur MAE point par point, lissée sur la fenêtre.
- Seuil : percentile 99,5 ou 99,9 de l'erreur sur le jeu de validation (données normales).
La recherche publiée dans le survey Deep Learning for Time Series Anomaly Detection (arXiv 2211.05244) recense plus de 100 architectures sur ce principe, avec des variantes Transformer (Anomaly Transformer, TranAD) qui capturent des dépendances encore plus longues.
Prévision + résidus comme alternative
Une approche complémentaire : entraîner un modèle de prévision (LSTM, Prophet, N-BEATS) à prédire la valeur t+1 à partir des valeurs passées. L'anomalie est détectée quand le résidu (valeur réelle - prédite) dépasse un seuil. C'est équivalent à la décomposition STL pour les méthodes statistiques, mais avec un modèle non linéaire capable de capturer des patterns complexes.
Pour aller plus loin sur les modèles de prévision : notre guide prévision IA et séries temporelles et la comparaison ARIMA vs Prophet vs deep learning couvrent les architectures de base utiles ici.
Détection en temps réel et streaming : contraintes spécifiques
Le contexte IoT industriel impose souvent une contrainte de latence : l'anomalie doit être détectée en quelques secondes, pas en quelques heures. Cela change la conception du système.
Ce qui fonctionne en streaming
Les méthodes statistiques incrémentales sont les plus adaptées : z-score robuste mis à jour sur fenêtre glissante, EWMA, ou les algorithmes du framework River (Python) conçu pour l'apprentissage en ligne (Half-Space Trees, SNARIMAX). Ces algorithmes mettent à jour leurs paramètres à chaque nouveau point, sans reprocesser l'historique.
Pour le ML et le deep learning, le pattern standard est différent : entraînement offline sur l'historique (toutes les N heures ou tous les N jours), puis inférence en ligne sur une fenêtre glissante. L'inference d'un LSTM-AE sur 100 points prend quelques millisecondes sur CPU, compatible avec des capteurs échantillonnant à 10-100 Hz.
Architecture typique temps réel
- Ingestion : Kafka, MQTT, InfluxDB pour le stockage de séries temporelles.
- Processing stream : Apache Flink ou Kafka Streams pour le calcul fenetre glissante.
- Scoring : modèle ONNX exporté depuis PyTorch/TensorFlow, servi via Triton Inference Server ou une API FastAPI.
- Alertes : seuillage en tier (warning / alert / critical) avec confirmation temporelle avant déclenchement.
Principe de confirmation temporelle
Ne déclenchez pas une alerte au premier point au-dessus du seuil. Exigez que le score d'anomalie reste élevé pendant N secondes consécutives (ou sur K des N derniers points). Ce filtre seul réduit souvent les faux positifs de 70% sans dégrader le rappel sur les vraies anomalies, qui persistent par définition.
Pour les spécificités des données capteurs en maintenance industrielle, notre article choisir ses capteurs et structurer ses données de terrain couvre la collecte, la qualité et les fréquences d'échantillonnage selon les types de capteurs.
Evaluation sur événements rares : au-dela de l'accuracy
Les anomalies industrielles représentent typiquement moins de 1% des points de données. Dans ce contexte, un modèle qui prédit "normal" à 100% a une accuracy de 99% - et est totalement inutile.
Métriques adaptées
F1-score sur la classe anomalie : combine précision (parmi les alertes déclenchées, combien sont vraies) et rappel (parmi les vraies anomalies, combien ont été détectées). En maintenance, le rappel est généralement prioritaire : une panne non détectée coûte bien plus cher qu'une fausse alerte. Un F1 orienté recall (F-beta avec beta > 1) peut être approprié.
PA (Point Adjust) et event-based precision/recall : évaluer point par point est trompeur pour les anomalies collectives. Si le modèle déclenche 5 minutes avant la véritable anomalie, c'est utile - même si l'alignement exact est décalé. Les métriques basées sur les événements tolèrent un décalage temporel et donnent un crédit partiel pour les détections proches.
PR-AUC (Area Under Precision-Recall Curve) : plus informative que la ROC-AUC en cas de forte asymétrie de classes. La ROC-AUC peut paraître excellente (0,95+) même sur un classifieur médiocre quand les anomalies sont rares. La PR-AUC pénalise correctement les faux positifs.
Protocole de validation
- Backtesting temporel strict : le modèle ne voit jamais le futur lors de la validation. La séparation train/test doit respecter l'ordre chronologique.
- Eviter la contamination du jeu d'entraînement par des anomalies non étiquetées (les modèles non supervisés s'entraînent en supposant que les données sont normales).
- Tester sur des pannes réelles documentées (logs de maintenance, arrêts machine), pas seulement sur des anomalies synthétiques injectées.
Notre article sur l'évaluation de modèles de séries temporelles par backtesting approfondit les protocoles de validation temporelle applicables ici.
Limites et conditions de réussite
Posons les limites clairement, parce qu'elles conditionnent le succès d'un projet.
La qualité des données capteurs est souvent le vrai problème. Les capteurs dérivent, tombent en panne, produisent des valeurs manquantes ou gelées (stuck-at-fault). Un modèle ne peut pas distinguer une anomalie process d'une anomalie capteur sans une couche de monitoring de la qualité du signal en amont.
Le manque de labels est structurel. En pratique, les données labellisées "anomalie confirmée" sont rares : les pannes ont été évitées, mal documentées, ou les logs de maintenance ne correspondent pas précisément aux timestamps des capteurs. Les méthodes non supervisées contournent ce problème mais compliquent l'évaluation.
Le drift de la ligne de base. Une machine vieillit. Ses signaux normaux dérivent progressivement. Un modèle entraîné il y a 6 mois peut sur-alerter car la nouvelle "normale" s'est décalée. Il faut prévoir un ré-entraînement périodique et un monitoring du drift de score. L'article sur MLOps, drift et ré-entraînement en maintenance prédictive couvre ce cycle.
La différence avec les anomalies sur images et sur données tabulaires. La détection d'anomalies visuelle (fissures, défauts de surface par vision) est un problème fondamentalement différent - traité dans notre article sur la détection d'anomalies qualité par vision IA. La détection de fraude sur données tabulaires (transactions bancaires) est encore différente : les transactions sont indépendantes, sans dépendance temporelle séquentielle - voir détection de fraude et anomalies ML pour PME. Les méthodes de ces deux domaines ne se transfèrent pas directement aux séries temporelles de capteurs.
Pour l'application spécifique aux données de vol (FDM/FOQA), le problème des séries temporelles capteurs se retrouve à grande echelle avec des contraintes de sécurité supplémentaires : détection d'anomalies sur données de vol FDM/FOQA. Et pour la prédiction de durée de vie résiduelle (RUL) - l'étape suivante après avoir détecté une anomalie - notre article passer de l'anomalie détectée au pronostic de durée de vie résiduelle couvre les modèles de pronostic.
Vos capteurs sont en place ?
On audite vos données capteurs et on choisit la methode de detection adaptee a votre contexte - en une session.
Pour aller plus loin
- Maintenance prédictive IA pour l'industrie et les PME - vue d'ensemble du domaine et ROI documentés.
- Estimateurs probabilistes du temps restant avant défaillance - l'etape suivante apres la detection d'anomalie.
- Fréquences d'échantillonnage, protocoles et qualité signal - types de capteurs, architectures de collecte.
- MLOps, drift et ré-entraînement en maintenance prédictive - maintenir un modèle en production.
- Détection d'anomalies qualité par vision IA - pour les défauts visuels sur pièces, distinct des séries temporelles.
- Détection de fraude et anomalies ML pour PME - meme probleme, données tabulaires, méthodes différentes.
- Détection d'anomalies sur données de vol FDM/FOQA - application aéronautique des séries temporelles capteurs.
- Analyse vibratoire IA en maintenance prédictive - focus sur les signaux vibratoires et machines tournantes.
- Service IA prédictive et maintenance sur mesure - notre accompagnement de l'audit a la mise en production.
- Deep Learning for Time Series Anomaly Detection : A Survey (arXiv 2211.05244) - revue de 100+ architectures avec benchmarks.
- Documentation STUMPY : Matrix Profile pour Python - tutoriels officiels de la librairie.