TC-STAT · 4 ECTS

Statistique générale pour l'IoT

30h CM + 30h TP — 10 séances. Maîtrisez les outils statistiques pour analyser les données capteurs et détecter les anomalies IoT.

10 Séances 30h CM 30h TP 4 ECTS
1

Analyse statistique d'un jeu de données capteur

Semaine 4CM+TP · 6h
Calculer et interpréter moyenne, médiane et mode sur des données capteur
Savoir faire
Comprendre écart-type et variance comme mesures de dispersion
Savoir expliquer
Construire et lire un histogramme et une boîte à moustaches
Savoir analyser
Détecter des anomalies dans un flux IoT à l'aide de la règle 3 sigma
Savoir produire

1. Pourquoi la statistique pour l'IoT ?

Les capteurs IoT génèrent des milliers de mesures. La statistique permet de passer d'une série brute à une information utile : température moyenne d'un entrepôt, détection d'un capteur défaillant, pic de consommation anormal.

MesureDéfinitionExemple IoT
Moyenne (μ)Somme des valeurs divisée par le nombre d'observations. μ = (∑xᵢ) / NTempérature moyenne d'un entrepôt sur 24h
MédianeValeur centrale après tri — divise la série en deux parts égalesRésistante aux valeurs aberrantes (capteur en panne)
ModeValeur la plus fréquente dans la sériePlage de température la plus courante dans un entrepôt
Écart-type (σ)Racine carrée de la variance. Mesure la dispersion autour de la moyennePlus σ est grand, plus les mesures sont instables
Variance (σ²)Moyenne des carrés des écarts à la moyenne : σ² = ∑(xᵢ − μ)² / NUtile pour quantifier la variabilité d'un processus
Règle 3σ99.7% des données dans [μ − 3σ, μ + 3σ]. Hors de cet intervalle = anomalieAlerte si température > μ + 3σ (capteur défaillant ou incendie)

2. Représentations graphiques

Un graphique vaut mille mesures. Trois représentations essentielles :

  • Histogramme — répartition des fréquences par intervalle. Permet de visualiser la distribution (normale, asymétrique, bimodale).
  • Série temporelle — valeur en fonction du temps. Indispensable pour voir l'évolution et les tendances.
  • Boîte à moustaches — médiane, quartiles, valeurs extrêmes. Détection rapide des outliers.

3. Détection d'anomalies IoT

Un capteur IoT produit un flux continu de données. Une anomalie peut être :

  • Globale — valeur hors de l'intervalle [μ − 3σ, μ + 3σ] (ex: 120°C dans un entrepôt à 25°C)
  • Contextuelle — valeur anormale pour un contexte donné (ex: 30°C à 3h du matin)
  • Collective — séquence de valeurs anormales (ex: plateau à 0°C = capteur mort)
Exercice 1 — Analyse statistique de données capteur

a) À partir d'un fichier CSV contenant 100 mesures de température (capteur DHT22), calculez la moyenne, la médiane et l'échantillon-type à l'aide de Python (NumPy).

b) Identifiez les valeurs anormales avec la règle 3σ. Combien y en a-t-il ? Sont-elles cohérentes avec le contexte ?

c) Créez un histogramme (10 bins) et une boîte à moustaches. Interprétez la forme de la distribution.

d) BONUS — Programme Arduino qui calcule une moyenne glissante sur 10 échantillons et allume une LED rouge si la température dépasse μ + 2σ.

✓ Corrigé 1a — Analyse avec NumPy
analyse_stats.pyPython
import numpy as np
import matplotlib.pyplot as plt

data = np.loadtxt("mesures_capteur.csv", delimiter=",", skiprows=1)

moyenne  = np.mean(data)
mediane  = np.median(data)
ecart_type = np.std(data, ddof=1)

print(f"Moyenne: {moyenne:.2f}°C")
print(f"Médiane: {mediane:.2f}°C")
print(f"Écart-type: {ecart_type:.2f}°C")

seuil_bas = moyenne - 3 * ecart_type
seuil_haut = moyenne + 3 * ecart_type
anomalies = data[(data < seuil_bas) | (data > seuil_haut)]
print(f"Anomalies détectées: {len(anomalies)}")
print(f"Intervalle 3σ: [{seuil_bas:.2f}, {seuil_haut:.2f}]")

plt.hist(data, bins=10, edgecolor="black", alpha=0.7)
plt.axvline(moyenne, color="r", linestyle="--", label=f"Moyenne={moyenne:.1f}")
plt.axvline(moyenne + 2*ecart_type, color="orange", linestyle=":", label="μ+2σ")
plt.axvline(moyenne - 2*ecart_type, color="orange", linestyle=":", label="μ-2σ")
plt.title("Histogramme des températures capteur")
plt.xlabel("Température (°C)"); plt.ylabel("Fréquence")
plt.legend(); plt.grid(True)
plt.show()
✓ Corrigé 1d — Moyenne glissante sur Arduino
moving_average.inoArduino
const int N = 10;
float buffer[N];
int index = 0;
float somme = 0;
float moyenne_glissante = 0;

const int LED_ROUGE = 7;
const int CAPTEUR_PIN = A0;

float mu = 25.0;
float sigma = 2.0;

void setup() {
  Serial.begin(9600);
  pinMode(LED_ROUGE, OUTPUT);
  for (int i = 0; i < N; i++) buffer[i] = 0;
}

void loop() {
  float valeur = analogRead(CAPTEUR_PIN) * (5.0 / 1023.0) * 100;

  somme -= buffer[index];
  buffer[index] = valeur;
  somme += buffer[index];
  index = (index + 1) % N;
  moyenne_glissante = somme / N;

  Serial.print("Valeur: "); Serial.print(valeur, 1);
  Serial.print(" | Moy. glissante: "); Serial.println(moyenne_glissante, 1);

  if (moyenne_glissante > mu + 2 * sigma) {
    digitalWrite(LED_ROUGE, HIGH);
    Serial.println("⚠ ALARME: Température anormale !");
  } else {
    digitalWrite(LED_ROUGE, LOW);
  }

  delay(1000);
}
2

Probabilités de base — événements, probabilité conditionnelle

Semaine 5CM+TP · 6h
Comprendre les notions d'événement, univers, probabilité
Savoir expliquer
Appliquer les formules de probabilité conditionnelle et de Bayes
Savoir faire
Calculer la probabilité de défaillance d'un capteur
Savoir analyser
Modéliser un système IoT redondant avec les probabilités
Savoir produire

1. Concepts fondamentaux

La probabilité P(A) d'un événement A est le rapport du nombre de cas favorables au nombre de cas possibles. P(A∪B) = P(A) + P(B) − P(A∩B).

Probabilité conditionnelle : P(A|B) = P(A∩B) / P(B). Exemple IoT : probabilité qu'un capteur soit défaillant sachant qu'il transmet des valeurs aberrantes.

Théorème de Bayes : P(A|B) = P(B|A) × P(A) / P(B). Utilisé pour la fusion de données et la fiabilité des capteurs.

Exercice 2

a) Un réseau IoT a 10 capteurs. La probabilité qu'un capteur tombe en panne sur une journée est 0.05. Calculez la probabilité qu'exactement 2 capteurs tombent en panne.

b) BONUS : Implémentez une simulation Monte Carlo avec Python.

3

Variables aléatoires — loi binomiale, loi normale

Semaine 6CM+TP · 6h
Distinguer variable discrète et continue
Savoir expliquer
Utiliser la loi binomiale pour modéliser des événements binaires
Savoir faire
Appliquer la loi normale aux mesures capteurs
Savoir analyser
Calculer des probabilités avec la table de la normale centrée réduite
Savoir produire
Exercice 3

a) Un capteur transmet 100 paquets. La probabilité de perte est 0.02. Quelle est la probabilité de perdre exactement 3 paquets ?

b) La température d'un entrepôt suit N(25°C, 4°C²). Quelle est la probabilité qu'elle dépasse 30°C ?

4

Théorème Central Limite et échantillonnage

Semaine 7CM+TP · 6h
Comprendre le TCL et son importance
Savoir expliquer
Distinguer population et échantillon
Savoir faire
Calculer intervalles de confiance
Savoir analyser
Déterminer la taille d'échantillon nécessaire
Savoir produire
Exercice 4

a) Simulez 1000 moyennes d'échantillons (n=30) d'une distribution uniforme. Vérifiez que la distribution des moyennes est normale.

b) Calculez un intervalle de confiance à 95% pour la température moyenne d'un entrepôt à partir de 50 mesures.

5

Tests d'hypothèses — test Z, test t de Student

Semaine 8CM+TP · 6h
Formuler H₀ et H₁ dans un contexte IoT
Savoir expliquer
Calculer la statistique de test Z et t
Savoir faire
Interpréter la p-value et le risque α
Savoir analyser
Tester si un lot de capteurs est conforme
Savoir produire
Exercice 5

a) Un fabricant annonce que ses capteurs ont une durée de vie moyenne de 50000h. Sur 40 capteurs testés, la moyenne est 48500h avec σ=3000h. Au seuil α=0.05, l'affirmation est-elle vraie ?

b) Test t : comparez deux lots de capteurs (n=12 chacun) avec un test de Student bilatéral.

6

Corrélation et régression linéaire

Semaine 9CM+TP · 6h
Calculer et interpréter le coefficient de corrélation r
Savoir expliquer
Construire un modèle de régression linéaire simple
Savoir faire
Évaluer la qualité du modèle avec R²
Savoir analyser
Prédire une température à partir de l'humidité
Savoir produire
Exercice 6

a) À partir d'un jeu de données température/humidité, calculez r et commentez la force de la relation.

b) Ajustez une droite de régression et prédisez la température pour une humidité donnée.

c) BONUS : Implémentez la régression linéaire sur ESP32 avec des calculs matriciels simples.

7

Analyse de variance (ANOVA)

Semaine 10CM+TP · 6h
Comprendre le principe de l'ANOVA à un facteur
Savoir expliquer
Décomposer la variance inter et intra-groupe
Savoir faire
Interpréter le tableau ANOVA et la statistique F
Savoir analyser
Comparer les performances de 3 modèles de capteurs
Savoir produire
Exercice 7

a) Trois modèles de capteurs de température sont testés (10 échantillons chacun). Les moyennes sont-elles significativement différentes ?

b) Effectuez l'ANOVA avec scipy.stats.f_oneway() et interprétez.

8

Statistiques non paramétriques

Semaine 11CM+TP · 6h
Comprendre quand utiliser un test non paramétrique
Savoir expliquer
Appliquer le test de Wilcoxon-Mann-Whitney
Savoir faire
Utiliser le test de Kruskal-Wallis
Savoir analyser
Comparer des distributions non normales de données capteurs
Savoir produire
Exercice 8

a) Comparez deux séries de mesures (non normales) avec le test de Mann-Whitney.

b) Justifiez le choix du test non paramétrique plutôt que le test t.

9

Contrôle statistique des processus (SPC) pour IoT

Semaine 12CM+TP · 6h
Comprendre les cartes de contrôle (Shewhart)
Savoir expliquer
Construire une carte X̄-R et X̄-S
Savoir faire
Détecter des dérives dans un processus IoT
Savoir analyser
Déployer un tableau de bord SPC temps réel
Savoir produire
Exercice 9

a) Générez un flux de données simulé et construisez une carte X̄-R.

b) Identifiez les points hors limites (LCL/UCL) et les séquences suspectes.

c) BONUS : Implémentez une carte de contrôle sur ESP32 avec affichage LCD.

10

Projet statistique — analyse complète de données capteurs

Semaine 13CM+TP · 6h
Appliquer l'ensemble des outils statistiques à un cas réel
Savoir expliquer
Produire un rapport d'analyse complet
Savoir faire
Formuler des recommandations basées sur les données
Savoir analyser
Présenter les résultats à un public non technique
Savoir produire
Projet

a) Collectez 500+ mesures depuis un capteur réel (température, humidité, pression).

b) Effectuez une analyse complète : stats descriptives, histogrammes, tests, régression, SPC.

c) Rédigez un rapport au format PDF avec recommandations pour l'installation IoT.

d) BONUS : Déployez un dashboard interactif avec Streamlit.