DataManip Insights ÉPISODE 1Qualité des données & capteursGratuit
🌡️ Épisode 1 · La dérive

« La courbe a l'air normale, le capteur est bon. »
Il dérive de 0,5 °C pour 100 jours : au bout d'un an, 1,8 °C d'erreur que la saison masque.

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.

🎯 L'analogie clé

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.

Le principe

Une petite erreur,
répétée chaque jour.

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éférence
Sans comparaison, une dérive lente se confond avec la saison.
➕
CUSUM
Cumule les petits écarts répétés pour détecter une dérive.
🔔
Fausses alarmes
Un seuil trop bas déclenche des alertes inutiles.
Le point clé : une dérive lente ne se voit pas sur la courbe seule. Avec une référence et un CUSUM, une dérive de 0,5 °C pour 100 jours est détectée à la médiane au jour 132, avec 4 % de fausses alarmes par an.
À vous de manipuler

Faites dériver le capteur.

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.

Écart capteur − référence sur un an
Écart quotidien capteur − référence (°C) sur 365 jours

Température annuelle 15 ± 8 °C (identique pour les deux capteurs), un seul capteur dérive ; référence sans dérive.

Détection CUSUM
-
jour médian
Détection seuil 3σ
-
jour médian
Erreur à la détection CUSUM
-
°C accumulés
Fausses alarmes sans dérive
-
CUSUM / seuil 3σ, par an
À retenir : avec 0,5 °C pour 100 jours et un bruit de 0,8 °C, la détection CUSUM tombe au jour 132 (erreur accumulée 0,66 °C) contre le jour 153 pour le seuil 3σ. Sans dérive, les fausses alarmes sont de 4 % pour le CUSUM et 57 % pour le seuil.
Selon la dérive

Plus la dérive est lente,
plus on attend.

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.

Jour de détection selon la dérive
Jour médian de détection selon la dérive (°C pour 100 jours)

Chips : jour médian de détection CUSUM pour le bruit réglé plus haut.

Dérive 0,2
-
jour médian, CUSUM
Dérive 0,5
-
jour médian, CUSUM
Dérive 1,0
-
jour médian, CUSUM
Dérive 2,0
-
jour médian, CUSUM
Le point clé : avec un bruit de 0,8 °C, la détection CUSUM prend 247 jours pour 0,2 °C, 132 jours pour 0,5 °C, 81 jours pour 1,0 °C et 48 jours pour 2,0 °C. Plus la dérive est lente, plus l'erreur s'accumule avant l'alerte.
En pratique

Quatre réflexes
face à un capteur.

Voici la démarche, puis un exemple.

🔗
Gardez une référence
Capteur voisin, station de référence ou étalon : sans lui, pas de dérive visible.
➕
Cumulez les écarts
CUSUM ou moyenne mobile longue sur l'écart, pas sur la mesure.
🎚️
Réglez le seuil
Mesurez les fausses alarmes sur une période sans dérive.
🛠️
Recalibrez
Planifiez un étalonnage avant que l'erreur dépasse la tolérance.
Python · derive.py
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
Test rapide

Vérifiez votre compréhension.

Un capteur de température gagne 0,5 °C pour 100 jours. Sur sa courbe annuelle, rien d'anormal n'apparaît. Que faire ?

Ce qu'il faut retenir

Épisode suivant

Capteur figé : la courbe plate qui ressemble à une journée calme

Un capteur bloqué répète sa dernière valeur : la moyenne reste crédible, seule la durée de plat le trahit.

ACCÈS COMPLET

Cet épisode est gratuit. Les 282 autres t'attendent.

Statistiques, finance quantitative, machine learning, deep learning, LLM, agents IA, MLOps : 321 épisodes avec des simulateurs à manipuler, pas des vidéos.

99 € (+ TVA selon le pays) · accès à vie · remboursement possible sous 7 jours
Débloquer les 282 épisodes · 99 € J'ai déjà une clé de licence
FULL ACCESS

This episode is free. The other 282 are waiting for you.

Statistics, quantitative finance, machine learning, deep learning, LLMs, AI agents, MLOps: 321 interactive episodes with simulators to play with, not videos.

€99 (+ VAT depending on country) · lifetime access · 7-day refund
Unlock the 282 episodes · €99 I already have a license key