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.