- Ω, événements, additivité. Ω est l'ensemble des issues possibles d'un tirage. La probabilité d'une réunion d'événements disjoints est la somme de leurs probabilités (l02).
- Compter. C(n, r) = n!/(r! (n − r)!) est le nombre de façons de choisir r places parmi n (l01). Le binôme : (p + q)n = Σk C(n, k) pk qn−k, ses coefficients forment le triangle de Pascal (l02).
- Indépendance. A et B sont indépendants quand P(A ∩ B) = P(A) P(B). Pour n essais, il faut l'indépendance mutuelle : la probabilité de n'importe quelle conjonction est le produit des probabilités (l03 pour deux événements, l03 pour la mutuelle).
- Moyenne et écart-type, en avance. E[X] = Σ x P(X = x) est la moyenne des valeurs pondérée par leurs probabilités (le centre de masse). Var(X) = E[(X − E[X])²] mesure l'étalement ; σ = √Var(X), l'écart-type, est dans l'unité de X. Brunton s'en sert dès 14 et les construit en 28 à 30 (l08).
La leçon
Variable aléatoire, réalisation, paramètre fixe outil
Brunton 13 · Random Variables and Probability Distributions
Brunton part de l'algèbre : une variable x peut valoir 2, 3 ou π. Une variable aléatoire prend elle aussi des valeurs, et l'on attache une probabilité à chacune. Son exemple : lancer une pièce quatre fois. Ω contient 24 = 16 séquences, de PPPP à FFFF (P pour pile, F pour face).
X = le nombre de piles attache un nombre à chaque séquence : X(PPFP) = 3. X prend les valeurs 0 à 4. Regroupées par valeur, les 16 séquences forment des piles de 1, 4, 6, 4 et 1 : P(X = 2) = 6/16. Ce tableau est la loi de X ; il résume les seize cas.
Trois objets, à ne jamais confondre. La probabilité de pile, p = ½, est fixe : c'est une propriété de la pièce. X est aléatoire : avant le lancer on ne connaît pas sa valeur, et elle changerait à chaque nouveau tirage. x = 3 est la valeur réalisée sur ce tirage-ci, notée en minuscule.
Les 16 séquences de quatre lancers, chacune avec sa valeur de X et une couleur par valeur. Regroupe par X : elles tombent en piles de 1, 4, 6, 4 et 1 ; chaque séquence pèse 1/16, donc la hauteur des piles est la loi de X, en seizièmes. Lance quatre pièces : une séquence s'entoure de rouge ; x et p̂ = x/4 changent d'un lancer à l'autre, p = ½ ne bouge jamais.
| fixe | aléatoire | réalisé |
|---|---|---|
| ce qui est vrai du monde, indépendamment des données | ce qui dépend du tirage : changerait à chaque nouveau tirage | la valeur sur ce tirage-ci, notée en minuscule |
| p = ½, la probabilité de pile | X, le nombre de piles ; p̂ = X/4, l'estimateur de p | x = 3 ; p̂ = x/4 = 0,75 sur ce tirage |
| μ = 3,5, la moyenne d'un dé | X̄, la moyenne de dix lancers | x̄ = 3,2 |
- ω est l'issue du tirage, ici une séquence. X est une fonction fixe : tout l'aléa est dans le tirage de ω.
- « X = x » est un événement, un sous-ensemble de Ω : sa probabilité se calcule avec les axiomes (l02).
- On écrit X ~ Binomiale(4, ½), « X suit la loi binomiale », jamais « X = Binomiale » (Brunton 14). La formule de cette loi est la notion 4.
- Un estimateur porte un chapeau : p̂ estime p. Le chapeau sert pour l'estimateur et pour sa valeur sur un tirage ; « sur ce tirage » dit lequel. Quand la loi dépend d'un paramètre fixe, on écrit P(X = x ; p) : la barre « ∣ » est réservée au conditionnement par un événement ou une variable aléatoire.
Exemples simples quatre pièces, un dé, dix lancers, cent pièces, une taille
- Quatre pièces. X(PPPP) = 4, X(PFFP) = 2, X(FFFF) = 0. Six séquences ont deux piles : PPFF, PFPF, PFFP, FPPF, FPFP, FFPP. Donc P(X = 2) = 6/16 = 0,375.
- Un dé, deux variables sur le même Ω. Ω = {1, 2, 3, 4, 5, 6}. X = la face : P(X = k) = 1/6 pour chaque k. Y = 1 si la face est un 6, 0 sinon : P(Y = 1) = 1/6, P(Y = 0) = 5/6. Le même tirage, deux fonctions, deux lois.
- Dix lancers de dé. Sur ce tirage : 2, 5, 1, 4, 3, 6, 2, 3, 5, 1. La moyenne réalisée vaut x̄ = 32/10 = 3,2. La moyenne du dé, μ = 3,5, n'a pas bougé : elle est fixe. Dix autres lancers donneraient un autre x̄ ; c'est X̄ qui est aléatoire.
- Cent pièces (Brunton). Ω contient 2100 ≈ 1,27 · 1030 séquences, qu'on n'énumérera jamais. Le nombre de piles a une loi qui porte un nom et une formule (notion 4) : elle résume tout ce qui compte pour la question posée.
- La loi est un modèle (Brunton). Dix piles sur dix lancers ont la probabilité (½)10 = 1/1 024 ≈ 0,001 si la pièce est équilibrée ; Brunton ne fait pas le calcul. Si on l'observe, on doute du modèle « pièce équilibrée » : c'est le test d'hypothèse. Mesurer 100 passants pour régler la moyenne et l'écart-type du modèle des tailles, c'est l'estimation de paramètres.
- Une taille. X = la taille, en mètres, d'une personne tirée au hasard. X peut prendre un continuum de valeurs : c'est une variable continue, et sa loi se décrit autrement (notion 2).
Simuler en Python énumérer Ω, puis cinq lancers
import itertools
from collections import Counter
import numpy as np
omega = ["".join(s) for s in itertools.product("HT", repeat=4)] # 16 sequences
X = {w: w.count("H") for w in omega} # the random variable: a function on omega
print(len(omega), "sequences; X('HHTH') =", X["HHTH"])
law = Counter(X.values())
print("law of X, in 16ths:", [law[k] for k in range(5)])
p = 0.5 # fixed: a property of the coin
rng = np.random.default_rng(1)
for draw in range(5):
flips = "".join("H" if u < p else "T" for u in rng.random(4)) # a new draw
x = X[flips] # realization of X on this draw
print(f"draw {draw}: {flips} x = {x} p_hat = {x / 4:.2f} p = {p}")
16 sequences; X('HHTH') = 3
law of X, in 16ths: [1, 4, 6, 4, 1]
draw 0: TTHT x = 1 p_hat = 0.25 p = 0.5
draw 1: HHTH x = 3 p_hat = 0.75 p = 0.5
draw 2: THTT x = 1 p_hat = 0.25 p = 0.5
draw 3: HTHH x = 3 p_hat = 0.75 p = 0.5
draw 4: HHHH x = 4 p_hat = 1.00 p = 0.5
Où ça casse
- Écrire μ = 3,2 pour x̄ = 3,2. μ est un nombre fixe du dé ; 3,2 est la valeur de X̄ sur ce tirage. Même faute avec la pièce : conclure p = 0,75 après x = 3. C'est p̂ qui vaut 0,75 sur ce tirage ; p reste ½.
- « X = 3 » n'est pas une définition de X. C'est un événement : l'ensemble des quatre séquences à trois piles.
- Une variable aléatoire n'est ni une variable, ni aléatoire. C'est une fonction fixe de l'issue. L'aléa vient du tirage de ω.
- Même loi ne veut pas dire même variable. X, le nombre de piles, et 4 − X, le nombre de faces, suivent toutes deux Binomiale(4, ½). Elles ne sont égales que sur les six séquences où X = 2.
- Le cas ML. Le vrai taux de bonnes réponses (accuracy) d'un modèle, π, est fixe ; le nombre X de bonnes réponses sur un jeu de test (test set) tiré au hasard est aléatoire ; 872 sur 1 000 est la réalisation sur ce jeu de test (notion 4).
Trois objets : le paramètre, fixe, vrai du monde (p, μ) ; la variable aléatoire, fonction de l'issue, qui changerait à chaque tirage (X, X̄, p̂) ; sa réalisation sur ce tirage, en minuscule (x, x̄ = 3,2).
Loi discrète, densité, fonction de répartition : évaluer ou intégrer outil
Brunton 13, et 16 pour la fonction de répartition
Pour une variable discrète, chaque valeur porte une probabilité : les barres 1-4-6-4-1 des quatre pièces, en seizièmes, somment à 1. C'est la loi de probabilité, ou PMF (probability mass function).
Pour une variable continue, comme la taille, ça ne marche plus. Prenons, comme Brunton, des tailles en cloche : moyenne 1,75 m, écart-type 7 cm (chiffres d'illustration). Mesurer exactement 1,75 m, avec une précision infinie, a une probabilité nulle. Une classe de 10 cm autour de 1,75 m contient 52,5 % des gens, une classe de 1 cm 5,69 %. La probabilité fond avec la largeur, mais le rapport probabilité / largeur se stabilise vers 5,70 par mètre : c'est la densité f, une probabilité par unité de longueur. Une probabilité devient une aire sous f.
Dans les deux cas, la fonction de répartition F(x) = P(X ≤ x) cumule la masse de gauche à droite, de 0 à 1.
Les tailles du modèle, rangées en classes. Choisis la largeur des classes, de 10 cm à 1 cm. En probabilité de chaque classe, les barres s'écrasent : la classe centrale passe de 0,525 à 0,057, et tendrait vers 0 pour une classe réduite à un point. En probabilité ÷ largeur, les barres collent de mieux en mieux à la courbe f, dont le pic vaut 5,70 par mètre : une densité n'est pas bornée par 1.
- Deux gestes sur une densité. L'évaluer en un point donne une hauteur f(x) : c'est la vraisemblance de l'observation x, qui sert à comparer des hypothèses et n'a pas à être inférieure à 1. L'intégrer sur un intervalle donne une aire : c'est une probabilité, entre 0 et 1.
- f a l'unité inverse de x (ici, par mètre) ; F et les probabilités n'ont pas d'unité.
- En continu, P(X = x) = 0, donc ≤ et < donnent la même probabilité. En discret, non : F est un escalier qui saute de P(X = x) en chaque valeur x.
- F croît de 0 à 1. Pour une densité symétrique autour de μ, F(μ) = ½ : sous le pic de la normale (Brunton 16). En discret, non : la loi des quatre pièces est symétrique autour de 2, mais F(2) = 11/16.
En haut, la densité des tailles ; l'aire violette est P(a < X ≤ b). En bas, la fonction de répartition F : la même probabilité s'y lit comme la différence de hauteur F(b) − F(a). Les deux premiers readouts sont des hauteurs de f, des vraisemblances : au centre, elles dépassent 1. Les deux derniers sont des probabilités. Rapproche a de b : l'aire tend vers 0, les hauteurs ne bougent presque pas. Passe en centimètres : les hauteurs sont divisées par 100, l'aire ne change pas.
Exemples simples quatre pièces, une aire, une hauteur, une vraisemblance
- Quatre pièces, discret. F(2) = P(X ≤ 2) = (1 + 4 + 6)/16 = 11/16 = 0,6875, mais P(X < 2) = 5/16 = 0,3125 : en discret, ≤ et < diffèrent de P(X = 2) = 6/16.
- Tailles, une probabilité. P(1,70 < X ≤ 1,80) = F(1,80) − F(1,70) = 0,7625 − 0,2375 = 0,525.
- Tailles, une hauteur. f(1,75) = 1/(0,07 · √(2π)) = 5,70 par mètre. En centimètres, la même loi a f(175) = 0,057 par cm. La hauteur dépend de l'unité ; la probabilité 0,525 de l'exemple 2, non.
- Une vraisemblance. On mesure une personne : 1,82 m. Sous le modèle de moyenne 1,75 m, f(1,82) = 3,46 ; sous un modèle de moyenne 1,70 m et de même écart-type, f(1,82) = 1,31. La première hypothèse rend l'observation 2,64 fois plus vraisemblable. On a évalué f ; on n'a rien intégré, et P(X = 1,82) vaut 0 sous les deux modèles.
- Le cas ML. Ajuster un modèle par maximum de vraisemblance, c'est évaluer la densité du modèle en chaque donnée, multiplier les valeurs (indépendance), et chercher le paramètre qui rend ce produit maximal (fil B). Aucune intégrale n'intervient.
Preuve F(b) − F(a), P(X = x) = 0, f = F′
La dernière ligne dit pourquoi f(x) peut dépasser 1 : seul le produit f(x) · h est une probabilité, et h est petit.
Simuler en Python un million de tailles
import numpy as np
from scipy.stats import norm
mu, sigma = 1.75, 0.07 # height model, in metres
rng = np.random.default_rng(0)
h = rng.normal(mu, sigma, size=1_000_000)
print("heights exactly equal to 1.75:", (h == 1.75).sum())
for w in (0.10, 0.01, 0.001): # window of width w centred on 1.75
prob = np.mean(np.abs(h - mu) < w / 2)
print(f"width {w:5} m: P = {prob:.4f} P / width = {prob / w:.2f}")
print(f"density f(1.75) = {norm.pdf(mu, mu, sigma):.2f} per metre")
print(f"same law in cm: f(175) = {norm.pdf(175, 175, 7):.4f} per cm")
print(f"F(1.80) = {norm.cdf(1.80, mu, sigma):.4f}")
print(f"share of draws <= 1.80: {np.mean(h <= 1.80):.4f}")
heights exactly equal to 1.75: 0 width 0.1 m: P = 0.5244 P / width = 5.24 width 0.01 m: P = 0.0569 P / width = 5.69 width 0.001 m: P = 0.0057 P / width = 5.71 density f(1.75) = 5.70 per metre same law in cm: f(175) = 0.0570 per cm F(1.80) = 0.7625 share of draws <= 1.80: 0.7617
Où ça casse
- Lire f(x) comme une probabilité. « f(1,75) = 5,7, donc 570 % » n'a pas de sens. Seule l'aire en a un.
- Intégrer quand on veut une vraisemblance. La vraisemblance d'une observation x est f évaluée en x, pas une intégrale autour. Intégrer « un peu autour de x » donne une probabilité qui dépend de la largeur choisie et tend vers 0 avec elle.
- La valeur de f dépend de l'unité. 5,70 par mètre, 0,057 par centimètre : deux densités ne se comparent que dans la même unité.
- ≤ et < en discret. Pour quatre pièces, P(X ≤ 2) = 11/16 et P(X < 2) = 5/16. La notion 7 en dépend.
- Une variable peut n'être ni discrète, ni à densité. L'attente à un feu : 0 avec probabilité ½ (feu vert), une durée continue sinon. Sa fonction de répartition saute en 0, puis monte continûment. Seule F décrit toujours une loi ; Brunton y revient en 39 (l12).
Variable continue : la densité f est une probabilité par unité de x. Évaluée en un point, c'est une vraisemblance, qui peut dépasser 1 ; seule son intégrale sur un intervalle est une probabilité.
Bernoulli(p) : un essai, deux issues outil
Brunton 14 · Bernoulli and Binomial Random Variables
Brunton formalise ce qu'on fait depuis le début avec les pièces. Une variable de Bernoulli ne prend que deux valeurs : 1 si l'événement qu'on surveille se produit, 0 sinon. C'est à nous de dire ce qu'est un succès : pile, « j'ai fait un 6 », « la pièce fabriquée est bonne ».
Les deux issues n'ont pas à être également probables. On note p = P(X = 1) et q = 1 − p = P(X = 0). Pour une pièce, p = ½ ; pour « faire un 6 » avec un dé, p = 1/6 et q = 5/6.
Brunton s'en sert en programmant : il prend une image et masque chaque pixel, indépendamment des autres, avec probabilité p. C'est un masque de Bernoulli ; en deep learning, le dropout fait la même chose aux neurones d'un réseau.
Une image de 160 pixels. Chaque pixel est une Bernoulli(p) : masqué, donc noirci, avec probabilité p, indépendamment des autres. Monte p : la part masquée suit p sans lui être exactement égale, puisque chaque masque est un tirage. Nouveau masque : un autre tirage, le même p. La part masquée est la moyenne des 160 valeurs 0 ou 1 de ce masque ; en moyenne sur les masques, elle vaut p = E[X]. Au départ, à p = 0,3, ce masque en noircit 44 sur 160, soit 0,275.
- p ∈ [0, 1] est le seul paramètre, et il est fixe : il décrit le mécanisme, pas un tirage.
- La forme d'un seul trait se lit en remplaçant x : x = 1 donne p1(1 − p)0 = p, x = 0 donne 1 − p. Elle sert à écrire une vraisemblance sans séparer les cas.
- E[X] = 0 · (1 − p) + 1 · p = p. Var(X) = p(1 − p) est annoncée ici, comme le fait Brunton, et démontrée avec la variance (l08).
Exemples simples pièce, un 6, contrôle qualité, label, dropout
- Une pièce. p = ½ : E[X] = ½, Var(X) = ¼, la plus grande variance possible pour une Bernoulli.
- « Faire un 6 ». p = 1/6 ≈ 0,167 : E[X] = 0,167, Var(X) = (1/6)(5/6) = 5/36 ≈ 0,139.
- Contrôle qualité (Brunton). X = 1 si la pièce est bonne. Avec 2 % de pièces défectueuses, p = 0,98. Si l'on code plutôt « défectueuse » = 1, p = 0,02 : les deux codages décrivent le même mécanisme.
- Le cas ML : un label binaire. Le label Y d'un exemple (spam ou non) est une Bernoulli. Un classifieur donne p = P(Y = 1 ∣ x ; θ) ; la probabilité qu'il attribue au vrai label y vaut py(1 − p)1−y, et son −log, −[y log p + (1 − y) log(1 − p)], est la log-loss (fil B).
- Le dropout. Pendant l'entraînement, chaque neurone est coupé selon une Bernoulli(p) indépendante : c'est le masque de Brunton, appliqué à un réseau.
Où ça casse
- Un dé n'est pas une Bernoulli. Il a six issues. Il le devient quand on décide ce qui compte comme succès, « un 6 » par exemple.
- « Succès » est une convention, pas un jugement. Dans un dépistage, on code souvent 1 = « malade ».
- E[X] = p n'est pas une valeur possible. X vaut 0 ou 1, jamais 0,3.
- Une suite de Bernoulli demande le même p à chaque essai (notion 4). Des mails venus de deux sources, avec deux taux de spam, ne forment pas une suite de Bernoulli(p) de même p.
Bernoulli(p) : un essai à deux issues codées 1 (probabilité p) et 0 ; P(X = x ; p) = pˣ(1 − p)¹⁻ˣ, de moyenne p et de variance p(1 − p).
La binomiale : la somme de n Bernoulli indépendantes outil
Brunton 14
Lance n fois la même pièce, ou le même dé, et compte les succès : X = B1 + B2 + … + Bn, où chaque Bi est une Bernoulli(p) et où les essais sont indépendants. X suit une binomiale de paramètres n et p.
Brunton fait n = 2 au tableau, avec S pour succès et É pour échec. Zéro succès, c'est É puis É : q · q = q², parce que l'indépendance change le « et » en produit. Un succès, c'est SÉ ou ÉS : pq + qp = 2pq. Deux succès : p². Les coefficients 1, 2, 1 sont une ligne du triangle de Pascal.
En général, une séquence donnée à k succès a la probabilité pkqn−k, et il y a C(n, k) façons de placer les k succès. Trois 6 en douze lancers : C(12, 3) = 220 séquences, de probabilité (1/6)³(5/6)⁹ chacune, soit 0,197 en tout.
Le carré a une aire de 1. Sa largeur est partagée selon le premier essai, S avec probabilité p, É avec q ; sa hauteur selon le second. L'indépendance fait de chaque case un rectangle dont l'aire est le produit : p², pq, qp, q². Les couleurs regroupent les cases par nombre de succès k ; dans le second panneau, P(X = k) est la somme des cases de sa couleur : la barre de 0,278 réunit les deux cases pq et qp, de 0,139 chacune. Au départ p = 1/6, « faire un 6 » : 25/36, 10/36 et 1/36. Déplace p : les cases changent, leur somme reste (p + q)² = 1.
- n fixé d'avance : on compte les succès d'un nombre d'essais décidé avant de commencer.
- Le même p à chaque essai : c'est ce qui donne à toutes les séquences à k succès la même probabilité pk(1 − p)n−k.
- Des essais mutuellement indépendants : c'est ce qui change la probabilité d'une séquence en produit (l03).
- On compte sans l'ordre : SSÉ, SÉS et ÉSS donnent le même k, d'où le facteur C(n, k) (l01).
- E = np et Var = np(1 − p) sont annoncées ici, comme le fait Brunton. E[X] = E[B1] + … + E[Bn] = np par linéarité, sans aucune hypothèse (l08). Var(X) = n · p(1 − p) en additionnant les variances, ce qui demande des covariances nulles, que l'indépendance garantit (l09).
Chaque barre est P(X = k) ; la barre rouge est celle du k choisi. Le trait rouge marque E = np, le segment vert couvre E ± σ, avec σ = √(np(1 − p)). Les préréglages reprennent les exemples : quatre pièces (P(X = 2) = 0,375), douze dés (P(X = 3) = 0,197), cent dés (P(X = 10) = 0,021). Pousse p vers ½ : la loi devient symétrique et la plus large ; ramène p vers 0 : elle s'écrase à gauche. Monte n à p fixé : le centre avance comme np, la largeur seulement comme √n.
Exemples simples n = 2, n = 3, quatre pièces, des 6, un jeu de test
- n = 2, « faire un 6 ». q² = 25/36 ≈ 0,694 ; 2pq = 10/36 ≈ 0,278 ; p² = 1/36 ≈ 0,028. La somme fait 36/36.
- n = 3, le devoir de Brunton. Coefficients 1, 3, 3, 1 ; P(X = 1) = 3pq² compte SÉÉ, ÉSÉ et ÉÉS. Pour un dé : 0,579 ; 0,347 ; 0,069 ; 0,005.
- Quatre pièces. C(4, k)/2⁴ donne 1, 4, 6, 4, 1 seizièmes : la loi de la notion 1 est une Binomiale(4, ½).
- Des 6. Trois 6 en douze lancers : 220 × (1/6)³ × (5/6)⁹ = 220 × 0,00463 × 0,1938 = 0,197. Dix 6 en cent lancers, que Brunton pose sans le calculer : C(100, 10)(1/6)10(5/6)90 = 0,0214.
- Le cas ML : 872 bonnes réponses sur 1 000. Si les exemples de test sont tirés indépendamment et que le modèle a une accuracy vraie π, fixe, le nombre X de bonnes réponses suit Binomiale(1 000, π). 872 est sa réalisation sur ce jeu de test ; p̂ = X/1 000 est l'estimateur de π. Avec π = 0,87 : E[X] = 870 et σ = √(1 000 × 0,87 × 0,13) = 10,6 (déroulé de l'accuracy au SE).
Preuve le produit, les placements, et la somme qui vaut 1
L'indépendance sert à la première ligne, et seulement là. Sans elle, P(SSÉ) n'est pas un produit et la formule tombe.
Simuler en Python 100 000 séries de douze lancers
import numpy as np
from math import comb
n, p = 12, 1 / 6 # 12 die rolls, success = a six
pmf = [comb(n, k) * p**k * (1 - p)**(n - k) for k in range(n + 1)]
print(f"P(X = 3) = {pmf[3]:.4f} sum of all P(X = k) = {sum(pmf):.6f}")
rng = np.random.default_rng(0)
rolls = rng.integers(1, 7, size=(100_000, n)) # 100,000 experiments of 12 rolls
x = (rolls == 6).sum(axis=1) # X = B1 + ... + B12
print(f"share of experiments with exactly three sixes: {np.mean(x == 3):.4f}")
print(f"mean {x.mean():.3f} (np = {n * p:.3f})")
print(f"variance {x.var():.3f} (np(1 - p) = {n * p * (1 - p):.3f})")
P(X = 3) = 0.1974 sum of all P(X = k) = 1.000000 share of experiments with exactly three sixes: 0.1971 mean 2.000 (np = 2.000) variance 1.666 (np(1 - p) = 1.667)
Où ça casse
- Tirages sans remise. Tirer cinq cartes et compter les cœurs : après chaque carte, la probabilité d'un cœur change, les essais ne sont pas indépendants. C'est l'hypergéométrique (l02).
- Un p qui change d'un lot à l'autre. Un lot de 100 pièces sort, une fois sur deux, d'une machine à 1 % de défauts, sinon d'une machine à 5 %. Le nombre de défauts a une moyenne de 3, mais une variance de 6,87, contre 2,91 pour une Binomiale(100 ; 0,03) de même moyenne : ce n'est pas une binomiale.
- n qui n'est pas fixé. Lancer jusqu'au premier 6 et compter les lancers : le nombre d'essais est aléatoire, c'est la loi géométrique (l05).
- Le cas ML : des exemples dépendants. Si le même utilisateur apparaît vingt fois dans le jeu de test, les essais ne sont plus indépendants : X n'est plus binomiale et √(nπ(1 − π)) sous-estime l'incertitude (pont b04).
Binomiale(n, p) : le nombre de succès en n essais indépendants de même p. P(X = k) = C(n, k)pᵏ(1 − p)ⁿ⁻ᵏ, les placements fois la probabilité d'une séquence ; E = np, Var = np(1 − p).
La normale, limite de la binomiale quand n grandit outil
Brunton 15 · The Normal Distribution: the Limit of the Binomial Distribution for Large n
Brunton écrit la binomiale et, à côté, une courbe qu'il présente sans la justifier : la loi normale de moyenne μ = np et de variance σ² = np(1 − p). Puis il code les deux en Python, la binomiale étiquetée « exacte », la normale « approximation », et les superpose.
À n = 100 et p = ½, on ne voit presque pas de différence : l'écart maximal entre une barre et la courbe vaut 0,0002, pour un pic de 0,080. À n = 30, il vaut 0,0012 ; à n = 10, 0,006 ; à n = 5, 0,011 pour un pic de 0,31, et l'approximation ne vaut plus grand-chose. Dernier essai : n = 30 et p = 0,02. La normale met alors 21,7 % de sa masse à gauche de 0, dont 7,6 % sous −0,5, hors de toute barre, sur des nombres de succès négatifs, alors que P(X = 0) vaut 0,545. Pour un p petit à n fixé, donc un np petit, il faudra une autre loi, celle de Poisson.
Les barres sont la binomiale exacte, la courbe la normale de même moyenne et de même variance. Passe de n = 100 à n = 5, à p = ½ : l'écart maximal grimpe de 0,0002 à 0,011, et l'escalier des barres se détache de la courbe. Puis n = 30, p = 0,02 : la courbe met 21,7 % de sa masse à gauche de 0, dont 7,6 % sous −0,5, hors de toute barre, et manque la barre P(X = 0) = 0,545 de 0,16.
- f est une densité (notion 2) : μ place le pic, σ règle la largeur, et σ est hors de la racine (Brunton). Le second paramètre de N(μ, σ²) est la variance.
- « ≈ f(k) » marche parce que la barre en k a une largeur 1 : sa probabilité vaut à peu près hauteur × 1.
- L'énoncé exact (de Moivre–Laplace) porte sur la variable centrée réduite : P((X − np)/√(np(1 − p)) ≤ z) tend vers P(Z ≤ z) pour tout z, où Z suit N(0, 1) (notion 6).
- p fixe dans ]0, 1[ pendant que n grandit. Si p rétrécit comme λ/n, la limite est une loi de Poisson (l05).
- np(1 − p) pas trop petit : il faut assez de succès et assez d'échecs attendus. Brunton donne n ≈ 30 pour p = ½ ; les règles usuelles demandent np et n(1 − p) au moins 5, ou au moins 10, selon les auteurs.
- Des essais indépendants et de même loi, de variance finie p(1 − p) : c'est le premier cas du théorème central limite (l11), démontré en général en l12. La constante 1/√(2π) fait ∫ f = 1 (l07).
Mêmes objets que la vignette, avec n de 1 à 200 et p libres. Lecture en k : monte n à p = ½, la loi avance (centre np) et s'élargit (σ grandit comme √n), elle ne se fige jamais. Lecture centrée réduite : chaque barre est placée en z = (k − np)/σ et sa hauteur multipliée par σ ; la courbe ne bouge plus, c'est N(0, 1), et les barres viennent s'y coller quand n grandit. C'est cela qui converge. À p = 0,05, il faut n bien plus grand qu'à p = ½ : à n = 200, l'écart maximal vaut encore 0,009.
Exemples simples les tracés de Brunton chiffrés, un jeu de test
- n = 100, p = ½. μ = 50, σ = √25 = 5. P(X = 50) = 0,0796 ; f(50) = 1/(5√(2π)) = 0,0798.
- Les écarts maximaux entre barres et courbe, à p = ½ : 0,0012 à n = 30 (σ = 2,74) ; 0,006 à n = 10 pour un pic de 0,246 ; 0,011 à n = 5 pour un pic de 0,31.
- Une probabilité « raisonnable, comme 0,35 » (Brunton) : à n = 30, l'écart maximal vaut 0,004.
- n = 30, p = 0,02. μ = 0,6, σ = 0,77. P(X = 0) = 0,9830 = 0,545, alors que f(0) = 0,383, et 21,7 % de la masse normale tombe à gauche de 0, dont 7,6 % sous −0,5.
- Le cas ML. Sur 1 000 exemples de test à π = 0,87, X ≈ N(870 ; 10,6²). La variance binomiale donne l'erreur standard d'une accuracy, √(π(1 − π)/n) = 0,0106 ; l'approximation normale donne le 1,96 de l'intervalle (notion 6, fil A).
Simuler en Python le code de Brunton, chiffré
import numpy as np
from scipy.special import comb
from scipy.stats import norm
def compare(n, p):
k = np.arange(n + 1)
exact = comb(n, k) * p**k * (1 - p)**(n - k) # binomial PMF ("exact")
mu, sigma = n * p, np.sqrt(n * p * (1 - p))
# normal density N(np, np(1 - p)) evaluated at each integer k ("approximation")
approx = np.exp(-(k - mu)**2 / (2 * sigma**2)) / (sigma * np.sqrt(2 * np.pi))
gap = np.abs(exact - approx).max()
print(f"n={n:3}, p={p:4}: sigma={sigma:.2f} peak={exact.max():.4f} max gap={gap:.4f}")
for n in (100, 30, 10, 5):
compare(n, 0.5)
compare(30, 0.02)
below = norm.cdf(0, 0.6, np.sqrt(30 * 0.02 * 0.98)) # N(np, np(1 - p)) below 0
print(f"n=30, p=0.02: normal mass below 0 = {below:.3f}")
n=100, p= 0.5: sigma=5.00 peak=0.0796 max gap=0.0002 n= 30, p= 0.5: sigma=2.74 peak=0.1445 max gap=0.0012 n= 10, p= 0.5: sigma=1.58 peak=0.2461 max gap=0.0062 n= 5, p= 0.5: sigma=1.12 peak=0.3125 max gap=0.0112 n= 30, p=0.02: sigma=0.77 peak=0.5455 max gap=0.1624 n=30, p=0.02: normal mass below 0 = 0.217
Où ça casse
- np petit. La normale déborde sous 0, alors qu'un nombre de succès est positif : quand p est de l'ordre de λ/n, c'est le cas de Poisson (l05). Un p petit ne suffit pas à la faire échouer : à p = 0,02 et n = 10 000, np = 200 et l'écart maximal vaut 0,0005.
- n petit. L'escalier des barres se voit : à n = 5, l'écart vaut 3,6 % du pic.
- Les queues, en relatif. À n = 100 et p = ½, P(X ≥ 70) vaut 3,9 · 10−5 ; la normale, même avec la correction de la notion 7, donne 4,8 · 10−5. L'écart est minuscule en absolu, de 23 % en relatif : une très petite p-value calculée par la normale n'a que son ordre de grandeur.
- « La binomiale converge vers la normale », mais pas vers une loi fixe : sa moyenne np et son écart-type √(np(1 − p)) grandissent avec n. Ce qui converge, c'est la variable centrée réduite (figure 3).
Binomiale(n, p), n grand et np(1 − p) pas petit : (X − np)/√(np(1 − p)) tend vers N(0, 1), d'où P(X = k) ≈ f(k) pour N(np, np(1 − p)). Si np reste petit, c'est Poisson.
La normale centrée réduite, Φ, et 68 / 95 / 99,7 outil
Brunton 16 · The Standard Unit Normal and Probability Computations
Brunton commence par σ : un grand σ étale la cloche, un petit σ la resserre autour de μ. Le cas de référence est la normale centrée réduite Z, de moyenne 0 et d'écart-type 1. Sa fonction de répartition porte un nom : Φ(z) = P(Z ≤ z).
Il calcule ensuite 68 % de tête. Φ(1) ≈ 0,841 : c'est l'aire à gauche de 1, donc il reste environ 16 % à droite de 1. Par symétrie, il y a aussi 16 % à gauche de −1. Entre −1 et 1 : 1 − 0,16 − 0,16 = 0,68. Son devoir, à ±2 écarts-types : 95,4 %.
Autrefois, dit-il, on cherchait ces valeurs dans des « tablettes d'argile », écrites pour Z seulement. Pour une autre normale, on la ramenait d'abord à Z par z = (x − μ)/σ. Aujourd'hui, c'est une ligne de scipy.stats.
La densité de Z. Suis le calcul de Brunton : 1. Φ(k), l'aire à gauche de k ; 2. la queue droite, 1 − Φ(k) ; 3. la même queue à gauche de −k, par symétrie ; 4. la bande, ce qui reste. À k = 1 : Φ(1) = 0,8413, deux queues de 0,1587, une bande de 68,3 %. Monte k à 2, puis 3 : 95,4 %, puis 99,7 %. À k = 1,96, la bande vaut 95 %.
- φ est la densité, Φ la fonction de répartition : Φ(0) = ½, mais φ(0) ≈ 0,399.
- Φ n'a pas de formule close : e−z²/2 n'a pas de primitive élémentaire. On la lit dans une table, ou avec
scipy.stats.norm.cdf. - z = (x − μ)/σ compte en écarts-types la distance de x à μ. Que (X − μ)/σ suive N(0, 1) quand X suit N(μ, σ²) est admis ici, et démontré en l06 ; il faut σ > 0.
- Les trois bandes : 68,3 % à ±1σ, 95,4 % à ±2σ, 99,7 % à ±3σ ; et 95 % exactement à ±1,96σ.
En haut, la densité de N(200 ; σ²), les 400 pièces de Brunton quand σ = 10, avec la bande μ ± kσ en violet. En bas, sa fonction de répartition Φ((x − 200)/σ) : l'aire de la bande s'y lit comme l'écart vertical entre les deux points. Pose k sur 1, 2, 3 : 68,3, 95,4, 99,7 %. Puis change σ : la cloche s'étale ou se resserre, la bande la suit, et son aire ne bouge pas. C'est pourquoi une seule table, celle de Z, suffit.
Exemples simples Φ(1), le devoir, 400 pièces, une taille, un intervalle
- Φ(1) = 0,8413, donc Φ(−1) = 1 − 0,8413 = 0,1587, et P(−1 ≤ Z ≤ 1) = 0,8413 − 0,1587 ≈ 0,683.
- Le devoir de Brunton. P(|Z| ≤ 2) = 2 × 0,9772 − 1 ≈ 0,954 ; à ±3 : 2 × 0,9987 − 1 ≈ 0,997.
- 400 pièces. X ≈ N(200 ; 10²) : Brunton dit « plus ou moins 10 piles, environ 68 % du temps ». C'est l'aire de la normale entre 190 et 210. Pour le nombre entier de piles, P(190 ≤ X ≤ 210) vaut 0,706 : la notion 7 explique l'écart.
- « Suis-je normal ? » (Brunton). Avec le modèle de taille N(1,75 ; 0,07²), dépasser 1,89 m, c'est être à z = (1,89 − 1,75)/0,07 = 2 écarts-types au-dessus de la moyenne : P = 1 − Φ(2) = 0,023, une personne sur 44.
- Le cas ML : un intervalle à 95 % pour une accuracy. 872 bonnes réponses sur 1 000 : p̂ vaut 0,872 sur ce jeu de test, son erreur standard estimée √(0,872 × 0,128/1 000) = 0,0106, et 0,872 ± 1,96 × 0,0106 = [0,851 ; 0,893] (IC et test).
Preuve pourquoi une seule table suffit · culture
La bande ne dépend ni de μ ni de σ : c'est ce que la figure 4 montre quand on bouge σ.
Simuler en Python Φ, les bandes, un million de tirages
import numpy as np
from scipy.stats import norm
for k in (1, 2, 3):
print(f"Phi({k}) = {norm.cdf(k):.4f} P(|Z| <= {k}) = {2 * norm.cdf(k) - 1:.4f}")
print(f"Phi(-1) = {norm.cdf(-1):.4f} = 1 - Phi(1)")
print(f"95% exactly within +-{norm.ppf(0.975):.3f}")
rng = np.random.default_rng(0)
x = rng.normal(200, 10, size=1_000_000) # N(200, 10^2): numpy and scipy take sigma
for k in (1, 2, 3):
share = np.mean(np.abs(x - 200) <= 10 * k)
print(f"share within {k} sigma of 200: {share:.4f}")
Phi(1) = 0.8413 P(|Z| <= 1) = 0.6827 Phi(2) = 0.9772 P(|Z| <= 2) = 0.9545 Phi(3) = 0.9987 P(|Z| <= 3) = 0.9973 Phi(-1) = 0.1587 = 1 - Phi(1) 95% exactly within +-1.960 share within 1 sigma of 200: 0.6823 share within 2 sigma of 200: 0.9544 share within 3 sigma of 200: 0.9973
Où ça casse
- 68 / 95 / 99,7 est une propriété de la normale, pas de σ en général. Pour la variable de l08 qui vaut 0 ou 10 (probabilités 0,9 et 0,1), 90 % de la masse est à moins d'un écart-type (l08).
- Les queues lourdes. Sous une normale, sortir de ±3σ arrive une fois sur 370. Des latences, des rendements financiers ou des tailles de fichiers le font bien plus souvent : la normale sous-estime leurs extrêmes.
- Φ n'est pas φ. Φ(0) = 0,5 est une probabilité ; φ(0) = 0,399 est une hauteur de densité.
- N(μ, σ²) contre scipy. Le second paramètre de N est la variance, mais
norm(loc=200, scale=10)prend l'écart-type : écrirescale=100pour « variance 100 » rend la cloche dix fois trop large.
Toute normale : P(|X − μ| ≤ kσ) = 2Φ(k) − 1, avec Φ la répartition de N(0, 1) ; 68,3, 95,4 et 99,7 % à k = 1, 2, 3 ; 95 % à 1,96.
L'approximation normale et la correction de continuité outil
Brunton 16
Brunton lance 400 pièces : X ~ Binomiale(400, ½), μ = 200, σ² = 400 × ½ × ½ = 100, σ = 10. Il veut P(190 ≤ X ≤ 230). Exactement, c'est la somme P(X = 190) + P(X = 191) + … + P(X = 230), 41 termes, « un monstre » à la main : 0,852.
Avec la normale, c'est une aire : de 190 à 230, Φ(3) − Φ(−1) = 0,840. Il manque 0,012. Chaque entier k est une barre de largeur 1, qui s'étend de k − ½ à k + ½. L'aire de 190 à 230 coupe en deux la première barre et la dernière : la moitié de P(X = 190) et la moitié de P(X = 230) sont perdues, à peu près 0,012.
La correction de continuité élargit l'intervalle d'un demi de chaque côté : de 189,5 à 230,5, Φ(3,05) − Φ(−1,05) = 0,852, la valeur exacte.
Les barres sont P(X = k) pour 400 pièces, la courbe est N(200 ; 10²) ; le second panneau zoome sur la borne 190. 41 barres : la somme exacte de 190 à 230 vaut 0,852. Aire de 190 à 230 : 0,840, et le zoom montre la barre de 190 coupée en son milieu. Aire de 189,5 à 230,5 : l'aire reprend les deux demi-barres, 0,852.
- a et b sont des entiers, inclus. Une inégalité stricte se ramène d'abord à une large : P(190 < X < 230) = P(191 ≤ X ≤ 229).
- Pour la binomiale, μ = np et σ = √(np(1 − p)), sous les conditions de la notion 5.
- Le ½ vient de la largeur 1 des barres. Il compte d'autant plus que σ est petit, puisque chaque barre pèse alors davantage.
- Ce que calcule Brunton, Φ((b − μ)/σ) − Φ((a − μ)/σ), est l'approximation sans correction.
Exemples simples 400 pièces, une barre seule, dix pièces, un jeu de test
- 400 pièces. Exact : 0,8520. Sans correction : Φ(3) − Φ(−1) = 0,8400. Avec : Φ(3,05) − Φ(−1,05) = 0,8520.
- Les deux demi-barres. P(X = 190) = 0,0242 et P(X = 230) = 0,0004 ; leurs moitiés font 0,0123, à peu près l'écart 0,012 entre 0,852 et 0,840.
- Une seule valeur. P(X = 200) = 0,0399 exact ; Φ(0,05) − Φ(−0,05) = 0,0399. Sans correction, l'aire de 200 à 200 vaut 0 : il faut une barre pour avoir une probabilité.
- Dix pièces, μ = 5, σ = √2,5 ≈ 1,58. P(X ≤ 3) = 176/1 024 = 0,172 exact ; sans correction, Φ((3 − 5)/1,58) = 0,103 ; avec, Φ((3,5 − 5)/1,58) = 0,171. Quand σ est petit, une demi-barre pèse lourd.
- Inégalités strictes. P(190 < X < 230) = P(191 ≤ X ≤ 229) = 0,827 exact ; avec correction, de 190,5 à 229,5 : Φ(2,95) − Φ(−0,95) = 0,827.
- Le cas ML. Un modèle d'accuracy vraie π = 0,87, testé sur 1 000 exemples : quelle chance d'avoir 850 bonnes réponses ou moins ? Exact : 0,0353. Avec correction : Φ((850,5 − 870)/10,63) = Φ(−1,834) = 0,0334 ; sans : 0,0300. La correction rapproche ; l'asymétrie de la binomiale à p = 0,87 laisse un écart.
Simuler en Python les 41 termes contre les deux aires
from scipy.stats import binom, norm
n, p = 400, 0.5
mu, sigma = n * p, (n * p * (1 - p)) ** 0.5 # 200 and 10
terms = range(190, 231)
exact = sum(binom.pmf(k, n, p) for k in terms) # Brunton's "monster" sum
print(f"{len(terms)} terms, exact = {exact:.4f}")
naive = norm.cdf(230, mu, sigma) - norm.cdf(190, mu, sigma)
cc = norm.cdf(230.5, mu, sigma) - norm.cdf(189.5, mu, sigma)
print(f"normal from 190 to 230 = {naive:.4f} from 189.5 to 230.5 = {cc:.4f}")
print(f"half of the two end bars = {(binom.pmf(190, n, p) + binom.pmf(230, n, p)) / 2:.4f}")
s = 2.5 ** 0.5 # 10 coins: sigma = sqrt(2.5)
print(f"10 coins, P(X <= 3): exact {binom.cdf(3, 10, 0.5):.4f}, "
f"no correction {norm.cdf(3, 5, s):.4f}, corrected {norm.cdf(3.5, 5, s):.4f}")
41 terms, exact = 0.8520 normal from 190 to 230 = 0.8400 from 189.5 to 230.5 = 0.8520 half of the two end bars = 0.0123 10 coins, P(X <= 3): exact 0.1719, no correction 0.1030, corrected 0.1714
Où ça casse
- ≤ contre <. La correction se pose sur des inégalités larges entre entiers ; se tromper retire ou ajoute une barre entière à chaque bout (0,852 contre 0,827 ci-dessus).
- Pour une variable continue, elle n'a pas de sens. P(X = x) y vaut 0 : il n'y a pas de barre à reprendre.
- Quand σ est grand, elle ne compte presque plus. Pour 40 000 pièces, σ = 100 et une barre pèse au plus 0,004.
- p loin de ½. La binomiale est asymétrique, la normale ne l'est pas : la correction ne rattrape pas l'asymétrie (le cas ML ci-dessus).
- Aujourd'hui, la somme exacte est une ligne (
binom.cdf). L'approximation sert à raisonner, à calculer de tête et à comprendre d'où viennent les intervalles ; avec un ordinateur, on calcule exactement.
Variable entière approchée par N(μ, σ²) : chaque entier est une barre de largeur 1, d'où P(a ≤ X ≤ b) ≈ Φ((b + ½ − μ)/σ) − Φ((a − ½ − μ)/σ).
Résumé
- Une variable aléatoire est une fonction de l'issue du tirage. Fixe : p, μ ; aléatoire : X, X̄, p̂ ; réalisé : x, x̄.
- Discret : P(X = x) est une probabilité (PMF). Continu : P(X = x) = 0, et la densité f est une probabilité par unité ; P(a < X ≤ b) = F(b) − F(a).
- Une densité évaluée est une vraisemblance, qui peut dépasser 1 ; intégrée, c'est une probabilité.
- Bernoulli(p) : P(X = x ; p) = pˣ(1 − p)¹⁻ˣ, de moyenne p.
- Binomiale(n, p), somme de n Bernoulli indépendantes : C(n, k)pᵏ(1 − p)ⁿ⁻ᵏ, E = np, Var = np(1 − p).
- n grand et np(1 − p) pas trop petit : Binomiale(n, p) ≈ N(np, np(1 − p)) ; np petit : Poisson.
- Φ(z) = P(Z ≤ z) ; à ±1, 2, 3σ : 68,3, 95,4, 99,7 % ; 95 % à ±1,96σ.
- Variable entière : un demi de plus à chaque borne ; 400 pièces entre 190 et 230 : 0,852.
Chaîne verbalisée — une prise, à voix haute
- Quatre pièces, X = le nombre de piles : qu'est-ce qui est fixe, aléatoire, réalisé ?Fixe : p = ½, la pièce. Aléatoire : X, et l'estimateur p̂ = X/4, qui changeraient à chaque tirage. Réalisé : x = 3 sur ce tirage, en minuscule.
- Pourquoi P(X = 1,75 m) = 0 pour une taille, et que veut dire f(1,75) = 5,7 ?Un point n'a pas de largeur. f est une probabilité par mètre : une hauteur, la vraisemblance de l'observation 1,75 ; seule une aire est une probabilité.
- D'où vient P(X = k) = C(n, k)pᵏ(1 − p)ⁿ⁻ᵏ ?Une séquence à k succès vaut pᵏ(1 − p)ⁿ⁻ᵏ par indépendance ; il y en a C(n, k) ; ce sont des événements disjoints, on additionne.
- Quand une binomiale ressemble-t-elle à une normale, et à laquelle ?n grand et np(1 − p) pas trop petit : N(np, np(1 − p)). Ce qui converge est (X − np)/√(np(1 − p)). np petit : Poisson.
- Pourquoi 68 % dans ±1σ ?Φ(1) ≈ 0,841 ; il reste 0,159 à droite de 1, autant à gauche de −1 par symétrie ; 1 − 2 × 0,159 ≈ 0,68.
- 400 pièces : P(190 ≤ X ≤ 230) ?μ = 200, σ = 10. Exact, 41 termes : 0,852. Normale avec la correction, de 189,5 à 230,5 : Φ(3,05) − Φ(−1,05) = 0,852 ; sans, Φ(3) − Φ(−1) = 0,840.
Où ça sert ensuite
stats::va (notion 1) · stats::densite (notion 2) · stats::binomiale (notions 3, 4) · stats::normale (notions 5, 6, 7).
Une carte se fait depuis le « ce qu'on garde » d'une notion OUTIL, après ta lecture, dans tes mots.