LYCÉE → PRÉPA · L11

Module L11 · Partie G · Mathématiques de l’informatique

Probabilités et statistiques : raisonner sous incertitude.

Un capteur ment un peu à chaque mesure. Un modèle d’IA se trompe parfois. Un algorithme aléatoire est plus rapide qu’un déterministe. Ce module donne les outils pour quantifier l’incertitude : lois, espérance, variance, loi des grands nombres, théorème central limite, estimation, Bayes, tests — toujours vérifiés par simulation, parce que la simulation est l’expérience du probabiliste.

Durée : 3 séances · Prérequis : modules 3e « simulations », L10. Objectifs : variables aléatoires et lois usuelles, espérance/variance et leurs propriétés, LGN et TCL, estimation et intervalles de confiance, règle de Bayes et inférence, chaînes de Markov, tests d’hypothèses, Monte-Carlo et bootstrap.

Ce que vous saurez faire à la fin
  • Choisir la loi d’un phénomène (binomiale, Poisson, normale, exponentielle) et la simuler.
  • Donner un intervalle de confiance à une mesure et savoir combien de mesures il faut.
  • Mettre à jour une croyance avec Bayes : diagnostic, localisation de robot, filtre.
  • Tester une hypothèse (« ce dé est-il truqué ? », « ce modèle est-il meilleur ? ») proprement.

Références : Probability and Computing (Mitzenmacher-Upfal), programme MPSI/MP (probabilités), cours MIT 6.041, Think Stats (Downey).

Fiche de cours · Définitions

Probabilités et statistiques : définitions

Définition (espace probabilisé, probabilité). Un univers Ω d’issues, des événements (parties de Ω), une probabilité P avec P(Ω) = 1 et P(A ∪ B) = P(A) + P(B) si A ∩ B = ∅. Conséquences : P(Ā) = 1 − P(A), P(A ∪ B) = P(A) + P(B) − P(A ∩ B).
Définition (conditionnement, indépendance). P(A | B) = P(A ∩ B)/P(B). A et B sont indépendants si P(A ∩ B) = P(A)P(B), i.e. P(A | B) = P(A). Formule des probabilités totales : si (Bi) partitionne Ω, P(A) = Σ P(A | Bi)P(Bi).
Définition (variable aléatoire, espérance, variance). X : Ω → ℝ. Loi : P(X = k) (discrète) ou densité f (continue, P(a ≤ X ≤ b) = ∫f). E[X] = Σ k·P(X = k) ou ∫x f(x)dx. Var(X) = E[(X − E[X])²] = E[X²] − E[X]² ; écart-type σ = √Var. Covariance Cov(X, Y) = E[XY] − E[X]E[Y] ; corrélation ρ = Cov/(σXσY) ∈ [−1, 1].
Définition (estimateur, biais, intervalle de confiance). Un estimateur θ̂ est une fonction de l’échantillon ; son biais est E[θ̂] − θ. La moyenne empirique X̄ est sans biais pour E[X] ; la variance empirique avec 1/(n−1) est sans biais pour Var(X). Un intervalle de confiance à 95 % est un intervalle aléatoire qui contient θ avec probabilité 0,95 (sur la répétition des échantillons).
Définition (test d’hypothèse, p-valeur). Hypothèse nulle H₀ ; statistique de test T ; p-valeur = P(T aussi extrême que l’observé | H₀). On rejette H₀ si p < α (souvent 0,05). Erreur de type I : rejeter H₀ vraie (probabilité α) ; type II : garder H₀ fausse ; puissance = 1 − P(type II).
Définition (vraisemblance, MLE, MAP). L(θ) = P(données | θ). L’estimateur du maximum de vraisemblance maximise L (ou log L). Le MAP maximise P(θ | données) ∝ L(θ)·P(θ) (a priori).

Fiche de cours · Formules

Lois et formules à connaître

LoiP(X = k) ou densitéEVarModélise
Bernoulli(p)pk(1−p)1−kpp(1−p)Un essai
Binomiale(n, p)C(n,k)pk(1−p)n−knpnp(1−p)Nombre de succès en n essais
Géométrique(p)(1−p)k−1p1/p(1−p)/p²Rang du premier succès
Poisson(λ)e−λλk/k!λλÉvénements rares par unité de temps
Uniforme[a, b]1/(b−a)(a+b)/2(b−a)²/12Ignorance totale
Exponentielle(λ)λe−λx1/λ1/λ²Durée de vie sans mémoire
Normale(μ, σ²)e−(x−μ)²/2σ²/(σ√2π)μσ²Somme de nombreux petits effets ; bruit de mesure
Bayes : P(H | D) = P(D | H)·P(H) / P(D), avec P(D) = ΣH′ P(D | H′)P(H′)
E[aX + bY] = aE[X] + bE[Y] (toujours) ; Var(X + Y) = Var(X) + Var(Y) + 2Cov(X, Y) ; Var(aX) = a²Var(X)
Moyenne de n v.a. i.i.d. : E[X̄] = μ, Var(X̄) = σ²/n, σ = σ/√n diviser l’écart-type par 2 exige 4 fois plus de mesures
IC à 95 % pour une moyenne (n grand) : X̄ ± 1,96·s/√n ; pour une proportion : p̂ ± 1,96·√(p̂(1−p̂)/n)
Normale : P(|X − μ| ≤ σ) ≈ 68 %, ≤ 2σ ≈ 95 %, ≤ 3σ ≈ 99,7 %

Fiche de cours · Théorèmes et démonstrations

Démonstrations à savoir refaire (1/2)

Théorème 1 (formule de Bayes). P(H | D) = P(D | H)P(H)/P(D).
Par définition du conditionnement, P(H ∩ D) = P(H | D)P(D) = P(D | H)P(H). Diviser par P(D) > 0. Toute la robotique probabiliste (filtres de Kalman et particulaires, L19–L20) est cette formule : « croyance après mesure ∝ vraisemblance de la mesure × croyance avant ».
Théorème 2 (linéarité de l’espérance et variance d’une somme indépendante). E[X + Y] = E[X] + E[Y] sans hypothèse ; si X et Y sont indépendantes, Var(X + Y) = Var(X) + Var(Y).
Cas discret : E[X + Y] = Σx,y (x + y)P(X = x, Y = y) = Σx x Σy P(x, y) + Σy y Σx P(x, y) = Σ x P(X = x) + Σ y P(Y = y). Pour la variance : Var(X + Y) = E[(X + Y)²] − (E[X] + E[Y])² = E[X²] + 2E[XY] + E[Y²] − E[X]² − 2E[X]E[Y] − E[Y]² = Var(X) + Var(Y) + 2Cov(X, Y) ; l’indépendance donne E[XY] = Σ xy P(x)P(y) = E[X]E[Y], donc Cov = 0. Application : Binomiale = somme de n Bernoulli indépendantes, d’où E = np et Var = np(1−p) sans calcul de somme.
Théorème 3 (inégalités de Markov et de Tchebychev). Pour X ≥ 0 et a > 0 : P(X ≥ a) ≤ E[X]/a. Pour toute X de variance finie : P(|X − μ| ≥ kσ) ≤ 1/k².
Markov : E[X] = E[X·1X≥a] + E[X·1X<a] ≥ E[a·1X≥a] = a·P(X ≥ a) (le second terme est ≥ 0 car X ≥ 0). Tchebychev : appliquer Markov à la variable positive (X − μ)² avec le seuil k²σ² : P((X − μ)² ≥ k²σ²) ≤ Var(X)/(k²σ²) = 1/k².
Théorème 4 (loi faible des grands nombres). Si X₁, …, Xn sont i.i.d. de moyenne μ et de variance σ², alors pour tout ε > 0, P(|X̄n − μ| ≥ ε) ≤ σ²/(nε²) → 0.
E[X̄n] = μ (linéarité) et Var(X̄n) = Var(Σ Xi)/n² = nσ²/n² = σ²/n (indépendance, Théorème 2). Tchebychev avec kσ = ε donne P(|X̄n − μ| ≥ ε) ≤ Var(X̄n)/ε² = σ²/(nε²). C’est ce qui justifie l’estimation par simulation Monte-Carlo, et la précision en 1/√n.

Fiche de cours · Théorèmes et démonstrations

Démonstrations à savoir refaire (2/2)

Théorème 5 (MLE de la loi de Bernoulli et de la normale). Pour n observations de Bernoulli(p) avec k succès, p̂MLE = k/n. Pour n observations normales, μ̂ = X̄ et σ̂² = (1/n)Σ(xi − X̄)² (biaisé : E[σ̂²] = (n−1)σ²/n).
Bernoulli : log L(p) = k log p + (n − k) log(1 − p) ; dérivée k/p − (n − k)/(1 − p) = 0 ⇔ k(1 − p) = (n − k)p ⇔ p = k/n ; dérivée seconde négative : maximum. Normale : log L = −n log(σ√2π) − Σ(xi − μ)²/(2σ²) ; ∂/∂μ = Σ(xi − μ)/σ² = 0 ⇔ μ = X̄ ; ∂/∂σ = −n/σ + Σ(xi − μ)²/σ³ = 0 ⇔ σ² = (1/n)Σ(xi − X̄)². Biais : E[Σ(xi − X̄)²] = E[Σ xi² − nX̄²] = n(σ² + μ²) − n(σ²/n + μ²) = (n − 1)σ², d’où le facteur 1/(n−1) de la variance « corrigée ». Lien avec l’apprentissage : minimiser l’erreur quadratique = MLE sous bruit gaussien.
Théorème 6 (théorème central limite — énoncé et usage). Si Xi i.i.d. de moyenne μ et variance σ², alors √n(X̄n − μ)/σ converge en loi vers N(0, 1).
(Admis ; idée : la fonction caractéristique de la somme centrée réduite tend vers e−t²/2, celle de la normale, par développement limité à l’ordre 2 de chaque facteur.) Usage : pour n ≥ 30, X̄ ≈ N(μ, σ²/n), ce qui donne l’intervalle de confiance X̄ ± 1,96 σ/√n et le test z. Il explique pourquoi le bruit de mesure est si souvent gaussien : il est la somme de nombreuses petites causes.
Théorème 7 (paradoxe du test médical). Un test de sensibilité 99 % et spécificité 99 % pour une maladie de prévalence 0,1 % donne, en cas de test positif, une probabilité d’être malade d’environ 9 %.
Bayes : P(M | +) = P(+ | M)P(M)/[P(+ | M)P(M) + P(+ | M̄)P(M̄)] = 0,99·0,001/(0,99·0,001 + 0,01·0,999) = 0,00099/(0,00099 + 0,00999) ≈ 0,090. Les faux positifs parmi les 99,9 % de sains dominent les vrais positifs. Même leçon pour un détecteur d’obstacles rare : la précision dépend de la prévalence, pas seulement du capteur (L13, métriques).

Fiche de cours · Méthodes

Méthodes et pièges

Méthode — résoudre un problème de probabilités. (1) Définir précisément Ω et les événements. (2) Reconnaître une loi classique (essais indépendants → binomiale ; attente → géométrique/exponentielle ; comptage d’événements rares → Poisson). (3) Utiliser le complémentaire pour « au moins un ». (4) Conditionner sur ce qui est connu (probabilités totales, Bayes). (5) Vérifier par simulation (10⁵ tirages : précision ≈ 0,3 %).
Méthode — conclure d’une expérience. Répéter (graines), calculer moyenne et écart-type, donner un intervalle de confiance, comparer deux méthodes avec un test (t de Welch) ; regarder la taille d’effet, pas seulement la p-valeur ; se méfier de p ≈ 0,05 sur un seul essai ; ne pas tester 20 hypothèses et rapporter la seule significative (correction de Bonferroni : α/20).
Méthode — simuler proprement. rng = np.random.default_rng(graine) ; vectoriser (rng.random((n_essais, n))) ; estimer la précision par l’écart-type des répétitions.

Pièges : confondre P(A | B) et P(B | A) (procureur) ; supposer indépendantes des variables corrélées (les capteurs d’un même robot subissent les mêmes vibrations) ; corrélation ≠ causalité ; « significatif » ≠ « important » ; oublier que la variance de la moyenne décroît en 1/n, pas l’écart-type ; utiliser la normale pour des quantités positives (durées) ou bornées (proportions proches de 0 ou 1).

Fiche de cours · Exercices corrigés

Exercices corrigés

Exercice 1. Un capteur rate un obstacle avec probabilité 0,02 à chaque mesure, indépendamment. Le robot fait 10 mesures par seconde. Probabilité de rater un obstacle pendant 1 s (10 mesures) ? Nombre moyen de secondes avant le premier ratage sur une seconde entière ? Avec deux capteurs indépendants fusionnés par OU ?
Correction. Rater sur les 10 mesures = 0,02¹⁰ ≈ 10⁻¹⁷ (négligeable) — mais l’indépendance entre mesures successives est douteuse (même angle, même surface). Rater au moins une mesure sur 10 : 1 − 0,98¹⁰ ≈ 0,183. Ce dernier événement suit une géométrique de paramètre 0,183 en secondes : espérance 1/0,183 ≈ 5,5 s. Deux capteurs indépendants en OU : rater = les deux ratent = 0,02² = 4·10⁻⁴ par mesure ; sur 10 mesures, 1 − (1 − 4·10⁻⁴)¹⁰ ≈ 0,004. La redondance divise par ~45 le taux — si l’indépendance est réelle (technologies différentes : ultrason + infrarouge).
Exercice 2. On mesure 50 fois la distance à un mur : moyenne 2,013 m, écart-type 0,020 m. Donner un IC à 95 % pour la vraie distance. Combien de mesures pour un IC de ± 2 mm ? Le fabricant annonce 2,000 m : que conclure ?
Correction. σ = 0,020/√50 = 0,00283 m ; IC = 2,013 ± 1,96·0,00283 = [2,0075 ; 2,0185]. Pour ± 0,002 : 1,96·0,020/√n = 0,002 ⇒ √n = 19,6 ⇒ n ≈ 384. Test : z = (2,013 − 2,000)/0,00283 = 4,6 ≫ 1,96 (p ≈ 4·10⁻⁶) : l’écart de 13 mm n’est pas dû au hasard — biais systématique du capteur (ou du mur). L’IC excluant 2,000 dit la même chose. Si les mesures ne sont pas indépendantes (dérive thermique), l’IC est trop optimiste.
Exercice 3. Un robot est dans l’une de 3 pièces avec probabilités (0,5 ; 0,3 ; 0,2). Un capteur détecte une fenêtre ; les pièces ont respectivement 0, 1 et 2 fenêtres et le capteur voit une fenêtre présente avec probabilité 0,8 (une seule détection, indépendante par fenêtre), et hallucine une fenêtre avec probabilité 0,1 s’il n’y en a pas. Nouvelle croyance après « fenêtre détectée » ?
Correction. Vraisemblance P(det | pièce) : pièce 1 (0 fenêtre) : 0,1 ; pièce 2 (1 fenêtre) : 0,8 ; pièce 3 (2 fenêtres, détection si au moins une vue) : 1 − 0,2² = 0,96. Non normalisé : 0,5·0,1 = 0,05 ; 0,3·0,8 = 0,24 ; 0,2·0,96 = 0,192 ; somme 0,482. Croyance : (0,104 ; 0,498 ; 0,398). La pièce 1, a priori la plus probable, devient la moins probable. C’est un pas du filtre bayésien discret (L20).

01 / Lois

Les lois usuelles, simulées et comparées à la théorie

Quelle loi pour quoi
SituationLoiE, Var
n essais indépendants, k succèsBinomiale(n, p)np, np(1−p)
Événements rares dans un intervallePoisson(λ)λ, λ
Attente jusqu’au premier succès (discret)Géométrique(p)1/p, (1−p)/p²
Temps entre événements (continu, sans mémoire)Exponentielle(λ)1/λ, 1/λ²
Somme de nombreux petits effetsNormale(μ, σ²)μ, σ²
Aucune information dans [a, b]Uniforme(a+b)/2, (b−a)²/12

01 / Lois

Espérance, variance, et leurs règles

La linéarité de l’espérance ne demande aucune indépendance : c’est l’outil le plus puissant de l’analyse d’algorithmes aléatoires (« le nombre attendu de comparaisons est la somme des probabilités de chaque comparaison »). La variance, elle, ne s’additionne que pour des variables indépendantes (ou non corrélées).

02 / Grands nombres

Loi des grands nombres et théorème central limite

Pourquoi c’est LE résultat à connaître

La LGN dit que la simulation converge (Monte-Carlo marche). Le TCL dit à quelle vitesse et avec quelle forme : l’erreur d’une moyenne de n mesures est ≈ normale d’écart-type σ/√n. Conséquences : diviser l’erreur par 2 demande 4 fois plus de mesures ; la moyenne de 50 lectures d’un capteur bruité est un excellent estimateur, quelle que soit la loi du bruit ; et toutes les « barres d’erreur » des articles scientifiques viennent de là. Le TCL explique aussi pourquoi la loi normale est partout : tout ce qui est une somme de petites causes indépendantes est normal.

02 / Grands nombres

Estimer, avec un intervalle de confiance

Un intervalle de confiance à 95 % n’est pas « la vraie valeur a 95 % de chances d’être dedans » (elle est fixe !) mais « la procédure qui produit cet intervalle capture la vraie valeur 95 % du temps ». La simulation ci-dessus le montre. Le bootstrap (rééchantillonner ses propres données) est l’outil moderne quand la formule n’existe pas.

03 / Bayes

La règle de Bayes : mettre à jour une croyance

Le filtre bayésien, ancêtre de tout

Le petit programme de localisation est un filtre bayésien : prédiction (le mouvement étale la croyance) puis correction (l’observation la concentre). Avec une croyance gaussienne et un modèle linéaire, c’est le filtre de Kalman (module L19) ; avec des particules au lieu de cases, le filtre particulaire (module L20) ; avec des mots au lieu de cases, le classifieur naïf bayésien (spam). Le paradoxe de l’alarme (moins de 1 % d’incendie malgré un capteur « à 99 % ») est le piège du taux de base : un test, même excellent, sur un événement rare produit surtout des faux positifs.

03 / Bayes

Chaînes de Markov : le futur ne dépend que du présent

Les chaînes de Markov modélisent les machines à états probabilistes, les files d’attente, les textes (le « modèle de langue » le plus simple, ancêtre des LLM), PageRank, et servent d’outil de simulation (MCMC) en physique et en statistique bayésienne. Les temps d’atteinte se calculent par un système linéaire (module L10) — c’est aussi la base de l’apprentissage par renforcement (module L16).

04 / Tests

Tester une hypothèse : le dé est-il truqué ? le modèle est-il meilleur ?

Ce qu’une p-valeur dit, et ne dit pas

La p-valeur est la probabilité, si H0 était vraie, d’observer un écart au moins aussi grand. Petite ⇒ les données sont surprenantes sous H0 ⇒ on doute de H0. Elle ne dit pas la probabilité que H0 soit vraie (ce serait du Bayes). Le seuil 0,05 est une convention : 1 fois sur 20, un résultat « significatif » est un coup de chance — d’où la crise de la reproductibilité. En recherche, on rapporte l’effet (2,5 s), son intervalle de confiance, et on pré-enregistre l’hypothèse avant de regarder les données. Les tests par permutation et bootstrap remplacent avantageusement les formules quand on sait programmer.

04 / Tests

Algorithmes aléatoires : quand le hasard est plus rapide

Miller-Rabin est un algorithme Monte-Carlo (toujours rapide, parfois faux avec probabilité contrôlée) ; le tri rapide randomisé est Las Vegas (toujours juste, temps aléatoire). Le hasard sert aussi au hachage (module L03), aux protocoles réseau (backoff), à la cryptographie, aux tests par propriétés et à l’optimisation (recuit simulé).

Cours

Cours 1 — Le formalisme : univers, événements, probabilités, variables aléatoires

NotionDéfinitionExemple (deux dés)
Univers ΩEnsemble des issues possibles{1..6}², 36 issues équiprobables
ÉvénementSous-ensemble de Ω« somme = 7 » = {(1,6), …, (6,1)}, 6 issues
ProbabilitéP : événements → [0, 1], P(Ω) = 1, additive sur les disjointsP(somme = 7) = 6/36
ConditionnelleP(A | B) = P(A ∩ B) / P(B)P(somme = 7 | premier dé = 3) = 1/6
IndépendanceP(A ∩ B) = P(A) P(B)Les deux dés ; mais « somme = 7 » et « premier = 3 » sont indépendants aussi (coïncidence à vérifier !)
Variable aléatoireFonction X : Ω → ℝX = somme ; loi : P(X = k)
EspéranceE[X] = Σ k P(X = k)E[somme] = 7
Formule des probabilités totalesP(A) = Σ P(A | B_i) P(B_i) pour une partition (B_i)Base de Bayes

Cours

Cours 2 — Exemple travaillé : combien de mesures pour décider ? (puissance d’un test)

Problème. Un nouveau firmware est censé réduire le temps de parcours de 52 s à 50 s (σ ≈ 6 s entre essais). Combien d’essais par version pour le détecter avec un test au seuil 5 % et une probabilité de détection (puissance) de 80 % ?

Raisonnement. La différence des moyennes de deux échantillons de taille n a un écart-type σ√(2/n). Rejeter H₀ si la différence dépasse 1,96 σ√(2/n) (seuil 5 % bilatéral). Sous H₁ (vraie différence 2 s), on veut P(dépasser le seuil) = 0,8, soit 2 ≥ (1,96 + 0,84) σ√(2/n) ⇒ n ≥ 2 (2,8 σ / 2)² ≈ 141 essais par version. Avec 30 essais (module L11 §04), la puissance n’est que ≈ 25 % : on ratera l’amélioration trois fois sur quatre.

Avant toute expérience (module L24), calculez la puissance : une expérience sous-dimensionnée ne peut conclure ni dans un sens ni dans l’autre, et coûte autant qu’une bonne. Les deux erreurs : type I (fausse alerte, contrôlée par le seuil α) et type II (rater l’effet, contrôlée par la puissance 1 − β).

Cours

Cours 3 — Estimation : biais, variance, maximum de vraisemblance

Estimateur : une fonction des données qui vise un paramètre θ. Ses qualités : biais E[θ̂] − θ (nul pour la moyenne empirique ; non nul pour la variance divisée par n, d’où n − 1) ; variance ; consistance (θ̂ → θ quand n → ∞). Erreur quadratique = biais² + variance : le compromis biais-variance du module L13 vient de là.

Maximum de vraisemblance (MV). Choisir θ qui rend les données observées les plus probables : θ̂ = argmax P(données | θ). Pour des observations indépendantes, on maximise Σ log P(x_i | θ). Exemples : proportion de succès (θ̂ = k/n), moyenne d’une normale (θ̂ = x̄), et — module L13 — la régression logistique est exactement le MV d’un modèle de Bernoulli.

TP guidé

TP — Un rapport statistique complet sur des données de capteurs (sur PC, 2 h 30)

Exercices

Exercices auto-corrigés — probabilités

Exercice 1 — Calculs exacts par énumération

Avec des Fraction et l’énumération de Ω, calculez : a) la probabilité qu’en lançant 4 dés, tous soient différents ; b) l’espérance du maximum de 3 dés ; c) la probabilité d’au moins un 6 en 4 lancers ; d) P(somme de deux dés = 9 | au moins un dé est pair).

Correction
O4 = list(product(range(1, 7), repeat=4)); O3 = list(product(range(1, 7), repeat=3)); O2 = list(product(range(1, 7), repeat=2))
a = F(sum(len(set(w)) == 4 for w in O4), len(O4))
b = sum(F(max(w), len(O3)) for w in O3)
c = F(sum(6 in w for w in O4), len(O4))
pair = [w for w in O2 if any(x % 2 == 0 for x in w)]; d = F(sum(sum(w) == 9 for w in pair), len(pair))

Exercice 2 — Bayes séquentiel : quel dé ?

Une boîte contient un dé à 6 faces et un dé à 20 faces. On en tire un au hasard et on le lance plusieurs fois. posterior(resultats) renvoie P(dé à 6 | résultats). Puis nb_lancers_pour(seuil) : le plus petit nombre de lancers tous ≤ 6 après lequel P(dé à 6) ≥ seuil.

Correction
def posterior(res):
    p6, p20 = F(1, 2), F(1, 2)
    for r in res:
        p6 *= F(1, 6) if r <= 6 else 0; p20 *= F(1, 20)
    return p6 / (p6 + p20) if p6 + p20 else F(0)
def nb_lancers_pour(seuil):
    n = 0
    while posterior([1] * n) < seuil: n += 1
    return n

Exercices

Exercices auto-corrigés — statistiques

Exercice 3 — Intervalle de confiance et couverture

Écrivez ic_moyenne(x, niveau=0.95) (formule z avec écart-type estimé, ddof=1) et couverture(n, repetitions) qui mesure la fréquence à laquelle l’IC contient la vraie moyenne pour des échantillons normaux de taille n. Vérifiez que la couverture est proche de 95 % pour n = 50, et un peu inférieure pour n = 5 (pourquoi ? — loi de Student).

Correction
def ic_moyenne(x, niveau=0.95):
    m, s = x.mean(), x.std(ddof=1); h = 1.96 * s / np.sqrt(len(x)); return m - h, m + h
def couverture(n, repetitions=4000):
    X = rng.normal(5, 2, (repetitions, n)); m = X.mean(1); s = X.std(1, ddof=1); h = 1.96 * s / np.sqrt(n)
    return np.mean((m - h <= 5) & (5 <= m + h))

Pour n = 5, l’écart-type estimé est lui-même très incertain ; le quantile 1,96 (normal) est trop petit, il faudrait 2,78 (Student à 4 degrés de liberté).

Exercice 4 — Test de permutation générique

test_permutation(a, b, statistique, n=5000) renvoie la p-valeur bilatérale pour n’importe quelle statistique (fonction de deux échantillons). Testez avec la différence des moyennes et la différence des médianes.

Correction
def test_permutation(a, b, stat, n=5000):
    obs = abs(stat(a, b)); tout = np.concatenate([a, b]); k = len(a); compte = 0
    for _ in range(n):
        rng.shuffle(tout); compte += abs(stat(tout[:k], tout[k:])) >= obs
    return compte / n

05 / Défis

Défi ★ — Le capteur et ses statistiques

Consigne

Simulez 1000 lectures d’un capteur de distance : vraie valeur 50 cm, bruit normal σ = 2, plus 3 % de lectures aberrantes (valeur uniforme entre 0 et 400). 1) Comparez moyenne et médiane comme estimateurs : laquelle résiste ? 2) Filtre par moyenne glissante de 10 vs médiane glissante de 10 : tracez. 3) Intervalle de confiance bootstrap de la médiane. 4) Combien de lectures pour ±0,2 cm avec la moyenne (sans aberrantes) ?

Correction (extrait)
x = 50 + rng.normal(0, 2, 1000)
aberr = rng.random(1000) < 0.03
x[aberr] = rng.uniform(0, 400, aberr.sum())
print("moyenne", x.mean().round(2), "médiane", np.median(x).round(2))
def glissante(x, f, k=10): return np.array([f(x[max(0, i - k + 1):i + 1]) for i in range(len(x))])
m1, m2 = glissante(x, np.mean), glissante(x, np.median)
print("erreur RMS moyenne glissante :", np.sqrt(((m1 - 50)**2).mean()).round(2), "| médiane glissante :", np.sqrt(((m2 - 50)**2).mean()).round(2))
print("n pour ±0,2 :", int(np.ceil((1.96 * 2 / 0.2)**2)))

La médiane a un « point de rupture » de 50 % : elle ignore les aberrantes tant qu’elles sont minoritaires. La moyenne est tirée par n’importe quelle valeur extrême. Les filtres médians sont standard pour les capteurs ultrason et lidar.

05 / Défis

Défi ★★ — Le bandit à deux bras et la loi de Bayes

Consigne

Deux versions d’une page (ou deux stratégies de robot) ont des taux de succès inconnus p_A = 0,30 et p_B = 0,35. À chaque essai, vous choisissez l’une, observez succès/échec. 1) Stratégie « 50/50 pendant 1000 essais puis la meilleure » : regret total ? 2) Thompson sampling : maintenez pour chaque bras une loi Bêta(succès + 1, échecs + 1), tirez un échantillon de chaque, jouez le plus grand. Comparez le regret sur 5000 essais, moyenné sur 100 répétitions. 3) Tracez l’évolution de la croyance sur p_B.

Correction
def thompson(T=5000):
    s = np.zeros(2); e = np.zeros(2); regret = 0
    for t in range(T):
        bras = np.argmax(rng.beta(s + 1, e + 1))
        succes = rng.random() < p[bras]
        s[bras] += succes; e[bras] += not succes
        regret += p.max() - p[bras]
    return regret
def ab_test(T=5000, exploration=1000):
    s = np.zeros(2); n = np.zeros(2); regret = 0
    for t in range(T):
        bras = t % 2 if t < exploration else np.argmax(s / n)
        s[bras] += rng.random() < p[bras]; n[bras] += 1
        regret += p.max() - p[bras]
    return regret
print("regret A/B :", np.mean([ab_test() for _ in range(100)]).round(1))
print("regret Thompson :", np.mean([thompson() for _ in range(100)]).round(1))

La loi Bêta est le posterior conjugué de la binomiale : après s succès et e échecs avec un prior uniforme, la croyance sur p est Bêta(s+1, e+1). Thompson sampling explore naturellement (les bras incertains ont des tirages dispersés) puis exploite. C’est l’algorithme des tests A/B modernes, des recommandations et le point d’entrée de l’apprentissage par renforcement (module L16).

05 / Défis

Défi ★★★ — Esprit prépa : analyse en espérance du tri rapide et du hachage

Consigne

1) Montrez que le nombre attendu de comparaisons du tri rapide randomisé sur n éléments distincts est Σ_{i<j} 2/(j − i + 1) ≈ 2n ln n. Indice : deux éléments de rangs i et j sont comparés si et seulement si l’un des deux est le premier pivot choisi parmi les éléments de rangs i..j (linéarité de l’espérance sur les indicatrices). Vérifiez numériquement pour n = 50, 200, 1000 en comptant les comparaisons. 2) Table de hachage avec n clés dans m cases (hachage uniforme) : espérance de la longueur de la chaîne d’une case ? Du maximum des chaînes (≈ ln n / ln ln n pour m = n) ? Simulez. 3) Paradoxe des anniversaires : nombre attendu de clés avant la première collision ≈ √(πm/2). Simulez et concluez sur les hachages cryptographiques à 256 bits.

Correction (extrait)
def tri_compte(t):
    c = 0
    def rec(t):
        nonlocal c
        if len(t) <= 1: return t
        p = random.choice(t); c += len(t) - 1
        return rec([x for x in t if x < p]) + [x for x in t if x == p] + rec([x for x in t if x > p])
    rec(t); return c
for n in (50, 200, 1000):
    moy = sum(tri_compte(random.sample(range(10**6), n)) for _ in range(20)) / 20
    theo = sum(2 / (j - i + 1) for i in range(n) for j in range(i + 1, n))
    print(n, round(moy), round(theo), round(2 * n * math.log(n)))

def collision(m):
    vus = set(); k = 0
    while True:
        h = random.randrange(m); k += 1
        if h in vus: return k
        vus.add(h)
for m in (365, 10**4, 10**6):
    print(m, sum(collision(m) for _ in range(500)) / 500, round(math.sqrt(math.pi * m / 2), 1))

Pour un hachage à 256 bits, m = 2256 : il faut ≈ 2128 essais pour une collision — plus que le nombre d’atomes accessibles à tous les ordinateurs jusqu’à la fin du soleil. C’est ce qui rend Git, les signatures et les blockchains sûrs, et c’est un argument probabiliste, pas une preuve d’impossibilité.

06 / Vérification

Vous moyennez n lectures d’un capteur bruité. Pour diviser l’incertitude par 2, il faut :

Deux questions supplémentaires

1. Un test à 99 % de sensibilité sur une maladie touchant 1 personne sur 10 000 : que signifie un résultat positif ? Surtout un faux positif (Bayes : la probabilité d’être malade reste faible, ≈ 1 % si 1 % de faux positifs).

2. Pourquoi Var[X + Y] = Var[X] + Var[Y] exige-t-il l’indépendance ? Le terme croisé 2 Cov(X, Y) n’est nul que si les variables sont non corrélées.

Référence

Les mots à retenir

MotDéfinition
EspéranceMoyenne pondérée par les probabilités ; linéaire sans condition.
VarianceE[(X − μ)²] ; additive pour des variables indépendantes.
LGNLa moyenne empirique converge vers l’espérance.
TCLLa moyenne de n variables est ≈ normale d’écart-type σ/√n.
Intervalle de confianceProcédure qui capture la vraie valeur avec une fréquence donnée.
BootstrapIC par rééchantillonnage des données.
BayesPosterior ∝ vraisemblance × prior.
Chaîne de MarkovProcessus dont le futur ne dépend que de l’état présent.
p-valeurP(données au moins aussi extrêmes | H0).
Monte-Carlo / Las VegasAlgorithme aléatoire parfois faux / toujours juste.
Thompson samplingChoisir selon un tirage du posterior : explore puis exploite.

Pour continuer

Vous quantifiez l’incertitude

Module suivant : le calcul numérique — dérivées, intégrales, équations différentielles, optimisation par descente de gradient : les moteurs des simulateurs et de l’apprentissage.

À faire chez soi

← L10SommaireL12 : Calcul numérique et optimisation →