Un capteur vieillissant ne tombe pas en panne : il s'écarte lentement de la réalité. Sur une température annuelle qui varie de 16 °C d'amplitude, une dérive de 0,5 °C pour 100 jours se noie dans la saison et dans le bruit. En comparant le capteur à un capteur de référence et en cumulant l'écart (CUSUM), la médiane de détection tombe au jour 132, avec 4 % de fausses alarmes par an ; un simple seuil à 3 écarts-types donne 57 % de fausses alarmes.
Un compteur qui avance d'une minute par mois n'a jamais l'air faux ; c'est en le comparant à une horloge de référence qu'on voit l'écart s'accumuler.
L'écart quotidien entre le capteur et la référence vaut la dérive cumulée plus un bruit de √2 fois celui d'un capteur. Un seuil à 3σ ne réagit que lorsque la dérive dépasse le bruit d'un seul jour : il tarde et il déclenche de fausses alarmes. Le CUSUM additionne les écarts au-delà d'une marge k = σ/2 et alerte quand la somme dépasse 7σ : il accumule les petits signaux répétés, d'où une détection plus sûre.
Réglez la dérive (en °C pour 100 jours) et le bruit d'un capteur. Les points sont les écarts quotidiens entre capteur et référence, la ligne orange la dérive réelle, les traits verticaux les alarmes du tirage affiché. Les chiffres sont des médianes sur 150 années simulées.
Température annuelle 15 ± 8 °C (identique pour les deux capteurs), un seul capteur dérive ; référence sans dérive.
Les courbes donnent le jour médian de détection selon la dérive. Le point blanc est votre réglage de dérive (bruit réglé plus haut). Pour 0,2 °C pour 100 jours, la détection CUSUM prend 247 jours ; pour 2 °C, 48 jours.
Chips : jour médian de détection CUSUM pour le bruit réglé plus haut.
Voici la démarche, puis un exemple.
import numpy as np d = capteur - reference # écart quotidien sd = d[:60].std() # bruit mesuré sur une période saine c, alarme = 0, None for t, x in enumerate(d): c = max(0, c + x - 0.5 * sd) # CUSUM if c > 7 * sd and alarme is None: alarme = t # jour 132 en médiane
Un capteur bloqué répète sa dernière valeur : la moyenne reste crédible, seule la durée de plat le trahit.
Statistiques, finance quantitative, machine learning, deep learning, LLM, agents IA, MLOps : 321 épisodes avec des simulateurs à manipuler, pas des vidéos.
Statistics, quantitative finance, machine learning, deep learning, LLMs, AI agents, MLOps: 321 interactive episodes with simulators to play with, not videos.