Fiches › Carte › 0 · Socle probabiliste › leçon 12

Fonction génératrice et preuve du TCL

Brunton termine sa playlist par une démonstration : la somme de variables indépendantes, une fois standardisée, devient normale. Pour y arriver, il construit un outil, la fonction génératrice des moments, qu'il appelle l'empreinte d'une loi. La leçon suit Brunton 37 à 40 et 44, avec ses exemples : Poisson et les ampoules, la normale, l'exponentielle, les tailles déclarées à 6 pieds, des pièces. Toutes les notions sont de culture : elles éclairent le TCL, elles ne donnent pas de cartes.

outilà savoir produire au tableau, donnera une cartecultureà comprendre, reste ici, pas de carte▸ blocs à déplier : exemples, preuve, code, où ça casse
Ce que cette leçon suppose acquis
  • L'espérance d'une fonction (LOTUS). E[g(X)] = Σ g(x) P(X = x), ou ∫ g(x) f(x) dx, sans chercher la loi de g(X) (l08, notion 5). Ici, g(x) = etx.
  • Les moments. E[Xk] est le moment brut d'ordre k ; Var(X) = E[X²] − E[X]² (l08, notion 6) ; l'asymétrie et la kurtosis sont des moments centrés et réduits (l08, notion 7).
  • L'espérance d'un produit. Si X et Y sont indépendantes, E[g(X) h(Y)] = E[g(X)] E[h(Y)] (l08, notion 4).
  • L'énoncé du TCL. Xi i.i.d., de moyenne μ et de variance σ² finie : P((X̄n − μ)/(σ/√n) ≤ x) → Φ(x) (l11, notion 1). Cette leçon le démontre.
  • Trois lois. Poisson(λ) : P(X = k) = λk e−λ/k! (l05, notion 1) ; exponentielle(λ) : densité λ e−λx pour x ≥ 0 (l05, notion 3) ; normale centrée réduite : densité φ(x) = e−x²/2/√(2π) et fonction de répartition Φ (l04).

La leçon

L'empreinte d'une loi M(t) = E[etX] culture

Brunton 37 · The Moment Generating Function

Une loi a une infinité de moments : E[X], E[X²], E[X³]… Brunton les compare aux dérivées d'une fonction dans une série de Taylor : pris ensemble, ils forment l'empreinte de la loi. La fonction génératrice des moments les range tous dans une fonction d'une nouvelle variable t.

M(t) est la moyenne de etX. Chaque valeur x pèse etx fois sa probabilité : t est un bouton. À t = 0, etx = 1 : chaque valeur pèse sa probabilité, et la somme vaut 1. Pour un dé à t = 0,5, la face 6 pèse e³/6 = 3,35, la face 1 e0,5/6 = 0,27, et M(0,5) = 8,08. Un t positif grossit les grandes valeurs, un t négatif les petites.

Pourquoi « des moments » : etx = 1 + tx + t²x²/2 + …, donc M(t) = 1 + t E[X] + t² E[X²]/2 + … Le coefficient de tk est E[Xk]/k! : les moments, divisés par k!, sont les coefficients de Taylor de M.

Voir l'idée — chaque face pèse etx, et les moments reconstruisent la courbe

Un dé, une barre par face : sa hauteur est P(X = x) · etx, et M(t) est la somme des barres. À t = 0, chaque barre vaut ⅙ et la somme 1. À t = 0,5, la face 6 passe à 3,35 et fait 41 % de M(0,5) = 8,08 ; à t = −0,5, c'est la face 1 qui fait 41 %. À droite, la courbe M(t) et, en pointillé, sa série de Taylor arrêtée à K moments : en t = 0,5, elle donne 4,65 avec 2 moments, 7,16 avec 4, 8,07 avec 8.

La définition
MX(t) = E[etX] = Σx etx P(X = x)  (discret)     ∫ etx f(x) dx  (continu)
  • C'est LOTUS avec g(x) = etx (l08, notion 5) : t est un nombre fixé, X est aléatoire, et M(t) est un nombre pour chaque t.
  • M(0) = E[1] = 1 pour toute loi : c'est la masse totale.
  • M(t) peut valoir +∞ pour certains t. L'hypothèse utile, partout dans la leçon : M est finie sur un intervalle ouvert autour de 0, (−h, h).
  • Sous cette hypothèse, M(t) = Σk E[Xk] tk/k!, et M détermine la loi : deux variables dont les fonctions génératrices coïncident sur un intervalle autour de 0 ont la même fonction de répartition (théorème d'unicité, admis). C'est l'énoncé exact de « l'empreinte ».
Figure 1 — même moyenne, même variance : même départ, empreintes différentes

Quatre lois de moyenne 0 et de variance 1 : pile ou face à ±1, trois valeurs −√2, 0, √2 de probabilités ¼, ½, ¼, la normale centrée réduite, et une exponentielle(1) décalée de −1. Près de 0, leurs courbes se confondent avec la parabole 1 + t²/2 (pointillé) : en t = 0,25, elles valent toutes entre 1,031 et 1,038. Déplace t : en t = 1, elles valent 1,543, 1,589 et 1,649, et la dernière est infinie (elle n'existe que pour t < 1). Les deux premiers moments fixent le départ, les suivants séparent les lois. La notion 6 se sert exactement de ce départ commun.

Exemples simples constante, pièce, dé, ±1
  1. Une constante X = c : M(t) = ect. Pour c = 0, M vaut 1 partout.
  2. Une pièce, Bernoulli(p) : M(t) = (1 − p) e0 + p et = 1 − p + p et.
  3. Un dé : M(t) = (et + e2t + … + e6t)/6. M(0,5) = 8,08 ; M(−0,5) = 0,244.
  4. Pile ou face à ±1, gagner ou perdre 1 € : M(t) = ½ e−t + ½ et = cosh t. Elle resservira dans la preuve du TCL (notion 6).
Preuve pourquoi les moments sont les coefficients de M
etx = 1 + tx + t²x²/2! + t³x³/3! + …
série de l'exponentielle, valable pour tout nombre tx
M(t) = E[1 + tX + t²X²/2! + …]
définition de M
= 1 + t E[X] + t² E[X²]/2! + t³ E[X³]/3! + …
linéarité terme à terme ; permuter E et une somme infinie demande M finie près de 0
coefficient de tk : E[Xk]/k!
identifier les coefficients d'une série entière

L'unicité, elle, est admise. L'idée : une M finie sur (−h, h) se prolonge aux nombres complexes ; en t = is, elle devient la fonction caractéristique E[eisX], et une formule d'inversion, celle de Fourier, redonne la loi à partir de celle-ci. Ici i² = −1, et eiθ = cos θ + i sin θ est un point du cercle de rayon 1 (notion 6, trou 4).

Simuler en Python les sœurs de la log-normale ont les mêmes moments
import numpy as np

# Y ~ N(0, 1) and X = exp(Y) is log-normal. Its "sisters" reweight the density
# of ln X by (1 + a sin(2 pi y)), |a| <= 1.
y = np.linspace(-12, 16, 400_001)
dy = y[1] - y[0]
phi = np.exp(-y**2 / 2) / np.sqrt(2 * np.pi)

for a in (0.0, 0.5, 1.0):
    w = phi * (1 + a * np.sin(2 * np.pi * y))       # density of ln X for this sister
    assert w.min() >= 0                             # still a density
    moments = [np.sum(np.exp(k * y) * w) * dy for k in range(5)]   # E[X^k]
    cdf2 = np.sum(w[y <= np.log(2)]) * dy           # P(X <= 2)
    m = "  ".join(f"{v:.3f}" for v in moments)
    print(f"a = {a}:  E[X^k], k = 0..4: {m}   P(X <= 2) = {cdf2:.4f}")

m = "  ".join(f"{np.exp(k * k / 2):.3f}" for k in range(5))
print(f"theory e^(k^2/2):          {m}")
a = 0.0:  E[X^k], k = 0..4: 1.000  1.649  7.389  90.017  2980.958   P(X <= 2) = 0.7559
a = 0.5:  E[X^k], k = 0..4: 1.000  1.649  7.389  90.017  2980.958   P(X <= 2) = 0.7675
a = 1.0:  E[X^k], k = 0..4: 1.000  1.649  7.389  90.017  2980.958   P(X <= 2) = 0.7791
theory e^(k^2/2):          1.000  1.649  7.389  90.017  2980.958

Mêmes moments jusqu'à l'ordre 4, et en fait à tous les ordres, mais trois fonctions de répartition différentes : P(X ≤ 2) vaut 0,756, 0,768 ou 0,779.

Où ça casse
  • M peut être infinie partout sauf en 0. Loi de Cauchy : aucun moment, M(t) = ∞ pour tout t ≠ 0. Loi de Student à 3 degrés de liberté : variance finie (elle vaut 3), et pourtant M(t) = ∞ pour tout t ≠ 0.
  • Tous les moments finis ne suffisent pas. La log-normale X = eY, Y ~ N(0, 1), a E[Xk] = ek²/2 pour tout k, mais E[etX] = ∞ pour tout t > 0 : etey écrase la gaussienne. Ses « sœurs », de densité f(x)[1 + a sin(2π ln x)] avec −1 ≤ a ≤ 1, ont exactement les mêmes moments et des lois différentes (code ci-dessus).
  • Un seul point ne dit rien. Toutes les lois ont M(0) = 1. C'est l'égalité sur tout un intervalle autour de 0 qui identifie la loi.
Brunton, rectifiéBrunton (28, 30, 37) dit que les moments sont des « identifiants uniques » de la loi. Pas toujours : la log-normale partage tous ses moments avec des lois différentes. L'énoncé vrai : si M(t) est finie sur un intervalle ouvert autour de 0, elle détermine la loi, et la suite des moments aussi.
Brunton, rectifiéBrunton (37) dit que M est « la transformée de Laplace de la densité ». C'est la transformée de Laplace bilatérale, prise en −t : la transformée usuelle est ∫0∞ e−sx f(x) dx, avec un signe moins et pour une variable positive. Même famille d'outils, pas la même formule.

M(t) = E[etX] vaut 1 en 0 et a pour coefficients de Taylor E[Xk]/k!. Finie près de 0, elle identifie la loi ; sans cette condition, même tous les moments ne suffisent pas.

Dériver en 0 donne les moments ; Poisson culture

Brunton 38 · Example of the Moment Generating Function

Brunton insiste : on dérive par rapport à t, pas par rapport à x. x est alors une constante, et dériver fait descendre un x : d/dt etx = x etx, « pas de règle de la chaîne, pas d'intégration par parties ». Dériver k fois fait descendre xk ; en t = 0 l'exponentielle vaut 1, et il reste la moyenne de Xk.

Pièce Bernoulli(p) : M(t) = 1 − p + p et et M′ = M″ = p et, donc E[X] = E[X²] = p et Var = p(1 − p). Poisson, la loi des ampoules qui grillent à un taux donné : M(t) = eλ(et − 1) donne E[X] = λ et E[X²] = λ² + λ, donc Var = λ. Moyenne et variance égales, une propriété « drôle et étrange » selon Brunton.

Sur le graphe de M : la pente en 0 est la moyenne, la dérivée seconde en 0, la courbure, est E[X²].

Voir l'idée — la pente en 0 est la moyenne, la courbure est E[X²]

La courbe M(t), sa tangente en 0 (rouge) et sa parabole en 0 (pointillé), 1 + E[X] t + E[X²] t²/2. Poisson, λ = 2 : la tangente monte de 2 par unité de t, c'est E[X] = 2 ; la parabole a E[X²] = 6 ; Var = 6 − 4 = 2 = λ. Change λ : la variance suit toujours λ. Passe à la pièce : pente p, E[X²] = p aussi, variance p(1 − p), maximale à p = ½.

La formule
M(k)(0) = E[Xk]     E[X] = M′(0)     Var(X) = M″(0) − M′(0)²
  • M(k) est la dérivée k-ième par rapport à t, évaluée en t = 0 seulement.
  • Hypothèse : M finie sur un intervalle ouvert autour de 0. C'est elle qui permet de dériver sous le signe somme ou intégrale, l'étape que Brunton ne justifie pas.
  • Raccourci : avec K(t) = ln M(t), K′(0) = E[X] et K″(0) = Var(X) directement. Les dérivées de K en 0 s'appellent les cumulants.
Exemples simples pièce, Poisson, le devoir de Brunton, exponentielle, ln M
  1. Une pièce Bernoulli(0,3) : E[X] = 0,3, E[X²] = 0,3, Var = 0,3 − 0,09 = 0,21.
  2. Poisson (Brunton) : M′(0) = λ, M″(0) = λ² + λ, Var = λ. Les mêmes valeurs qu'en l05, sans une seule somme à calculer.
  3. Le devoir de Brunton. Les dérivées suivantes donnent E[X³] = λ³ + 3λ² + λ et E[X⁴] = λ⁴ + 6λ³ + 7λ² + λ. Pour λ = 2 : 22 et 94.
  4. L'exponentielle(λ) : M(t) = λ/(λ − t) (notion 3), M′(t) = λ/(λ − t)², M″(t) = 2λ/(λ − t)³. Donc E[T] = 1/λ, E[T²] = 2/λ², Var = 1/λ² : le résultat de l08, notion 8, sans intégration par parties.
  5. Le raccourci ln M sur Poisson. K(t) = λ(et − 1) : toutes ses dérivées en 0 valent λ. Moyenne λ, variance λ, et même troisième moment centré E[(X − λ)³] = λ.
  6. En ML : log-sum-exp et softmax. Pour une loi discrète de valeurs xi et de probabilités pi, K(t) = ln Σ pi et xi est un log-sum-exp (p08-02), et K′(t) = Σ xi · softmax(t x + ln p)i : la dérivée d'un log-sum-exp est une moyenne pondérée par un softmax. En t = 0, le softmax redonne les pi, et K′(0) = E[X].
Preuve dériver terme à terme, puis le cas Poisson
M(t) = Σx etx P(X = x)
définition, cas discret ; le cas continu est identique avec ∫
M′(t) = Σx x etx P(X = x)
dériver terme à terme en t : x et P(X = x) sont des constantes
M(k)(t) = Σx xk etx P(X = x)
répéter : chaque dérivée fait descendre un x
M(k)(0) = Σx xk P(X = x) = E[Xk]
e⁰ = 1, puis LOTUS

Dériver terme à terme une somme infinie, ou sous une intégrale, est permis quand M est finie autour de 0 : c'est l'hypothèse de la formule. Puis Poisson :

M(t) = eλ(et − 1)
notion 3
M′(t) = λet · eλ(et − 1)
règle de la chaîne, cette fois en t
M″(t) = (λet + (λet)²) eλ(et − 1)
dérivée d'un produit
M′(0) = λ    M″(0) = λ + λ²
e⁰ = 1 et λ(e⁰ − 1) = 0
Var(X) = λ + λ² − λ² = λ
Var = E[X²] − E[X]²
Simuler en Python les dérivées de M en 0, par différences finies
import numpy as np

lam, h = 3.0, 1e-3
M = lambda t: np.exp(lam * (np.exp(t) - 1))         # Poisson MGF

d1 = (M(h) - M(-h)) / (2 * h)                       # slope at 0
d2 = (M(h) - 2 * M(0) + M(-h)) / h**2               # curvature at 0
d3 = (M(2 * h) - 2 * M(h) + 2 * M(-h) - M(-2 * h)) / (2 * h**3)
print(f"M'(0)   = {d1:6.3f}   theory lam                 = {lam}")
print(f"M''(0)  = {d2:6.3f}   theory lam^2 + lam         = {lam**2 + lam}")
print(f"M'''(0) = {d3:6.3f}   theory lam^3 + 3lam^2 + lam = {lam**3 + 3 * lam**2 + lam}")
print(f"Var = M''(0) - M'(0)^2 = {d2 - d1**2:.3f}")

x = np.random.default_rng(0).poisson(lam, 1_000_000)
print("sample E[X], E[X^2], E[X^3]:", [round(float(np.mean(x**k)), 2) for k in (1, 2, 3)])
mu, sd = x.mean(), x.std()
print(f"skewness {np.mean(((x - mu) / sd)**3):.3f}   theory 1/sqrt(lam) = {lam**-0.5:.3f}")
M'(0)   =  3.000   theory lam                 = 3.0
M''(0)  = 12.000   theory lam^2 + lam         = 12.0
M'''(0) = 57.000   theory lam^3 + 3lam^2 + lam = 57.0
Var = M''(0) - M'(0)^2 = 3.000
sample E[X], E[X^2], E[X^3]: [3.0, 12.0, 56.98]
skewness 0.576   theory 1/sqrt(lam) = 0.577
Où ça casse
  • M‴(0) est E[X³], pas l'asymétrie. Pour Poisson(2), E[X³] = 22, alors que l'asymétrie, E[((X − μ)/σ)³], vaut 1/√2 = 0,71, et la kurtosis 3 + 1/λ = 3,5 (l08, notion 7).
  • Les coefficients de Taylor de M sont E[Xk]/k!, pas E[Xk] : M(t) = 1 + E[X] t + E[X²] t²/2 + E[X³] t³/6 + …
  • Sans M finie près de 0, pas de dérivées en 0. La log-normale a tous ses moments, mais M = ∞ à droite de 0 : la formule ne s'applique pas, il faut calculer chaque moment directement.
Brunton, rectifiéBrunton (37) dit que « E[X³] est l'asymétrie » et « E[X⁴] la kurtosis ». Ce sont des moments bruts ; l'asymétrie et la kurtosis sont des moments centrés et réduits, E[((X − μ)/σ)³] et E[((X − μ)/σ)⁴], qui ne dépendent ni de la position ni de l'unité (l08, notion 7). Il se reprend à moitié plus loin dans la même vidéo, puis en 38 : « lié à l'asymétrie ».
Brunton, rectifiéBrunton (44) dit que « les coefficients de cette série de Taylor sont mes moments ». Le coefficient de tk est E[Xk]/k! : les moments, à un facteur 1/k! près.
Brunton, rectifiéBrunton (38) prédit, pour le devoir, « quelque chose comme λ³ + λ² + λ ». Le bon résultat est λ³ + 3λ² + λ, puis λ⁴ + 6λ³ + 7λ² + λ : les puissances sont les bonnes, pas les coefficients.

Dériver en t fait descendre un x : M(k)(0) = E[Xk], d'où E[X] = M′(0) et Var = M″(0) − M′(0)². Pour Poisson, moyenne et variance valent λ.

Les fonctions génératrices de Poisson, de la normale, de l'exponentielle culture

Brunton 37

Brunton calcule trois fonctions génératrices, chacune avec son astuce. Pour Poisson, on reconnaît la série de l'exponentielle : Σ (λet)k/k! = eλet, d'où M(t) = eλ(et − 1). Pour la normale centrée réduite, on complète le carré : etx e−x²/2 = et²/2 e−(x − t)²/2, et le second facteur est une cloche centrée en t. Il reste M(t) = et²/2, « plus simple que la densité » selon Brunton.

Pour l'exponentielle, ∫ etx λe−λx dx = ∫ λe−(λ − t)x dx ne converge que si t < λ : M(t) = λ/(λ − t), infinie au-delà. Avec λ = 1 : M(0,5) = 2, M(0,9) = 10, M(1) = ∞.

Le motif commun : multiplier la loi par etx redonne une loi de la même famille, à une constante près, et cette constante est M(t).

Voir l'idée — multiplier la loi par etx, puis mesurer l'aire

La loi de départ en pointillé, la même multipliée par etx en plein ; l'aire de la courbe pleine, ou la somme des barres pleines, est M(t). L'échelle verticale s'adapte. Poisson(2) : à t = 0,5, les barres pleines ont la forme d'une Poisson(2e0,5) = Poisson(3,30), et leur somme vaut 3,66. Normale : la cloche glisse en t sans se déformer, et son aire vaut et²/2, 1,13 à t = 0,5. Exponentielle(1) : la pente se couche, l'aire vaut 1/(1 − t), 2 à t = 0,5. Pousse t jusqu'à 1 et au-delà : la courbe ne redescend plus, l'aire est infinie.

Les trois formules
Poisson(λ) : eλ(et − 1)     N(0, 1) : et²/2     exponentielle(λ) : λ/(λ − t), pour t < λ
  • Poisson et normale : finies pour tout t. Exponentielle : finie seulement pour t < λ ; le domaine fait partie de la réponse.
  • N(μ, σ²) : X = μ + σZ, donc MX(t) = eμt MZ(σt) = eμt + σ²t²/2.
  • Brunton note s au lieu de t pour l'exponentielle, parce que t y désigne déjà le temps d'attente. C'est le même objet.
Exemples simples trois valeurs, une normale quelconque, deux vérifications
  1. Poisson(2) à t = 0,5 : M = e2(e0,5 − 1) = e2 × 0,649 = 3,66.
  2. N(0, 1) à t = 1 : e0,5 = 1,649. Pour N(3, 4), de moyenne 3 et de variance 4 : M(t) = e3t + 2t².
  3. Exponentielle(1) : M(0,5) = 2, M(0,9) = 10, M(t) = ∞ pour t ≥ 1.
  4. Vérification par la notion 2. Pour M(t) = et²/2 : M′(t) = t et²/2 et M″(t) = (1 + t²) et²/2. En 0 : moyenne 0, E[X²] = 1, variance 1. C'est bien N(0, 1).
  5. Le quatrième moment de la normale, par les coefficients (notion 1) : et²/2 = 1 + t²/2 + t⁴/8 + …, et le coefficient de t⁴ est E[X⁴]/4!. Donc E[X⁴] = 24/8 = 3 : la kurtosis de la normale (l08, notion 7), et le 3 qu'utilise la variance du χ² (l06, notion 4).
Preuve les trois calculs de Brunton

Poisson

M(t) = Σk ≥ 0 etk λk e−λ/k!
définition, cas discret
= e−λ Σk (λet)k/k!
e−λ ne dépend pas de k ; etk λk = (λet)k
= e−λ eλet = eλ(et − 1)
Σ ak/k! = ea, la série de l'exponentielle

Normale centrée réduite

M(t) = (1/√(2π)) ∫ etx e−x²/2 dx
définition, densité de N(0, 1)
tx − x²/2 = −½(x − t)² + ½t²
compléter le carré : développer (x − t)²
M(t) = et²/2 · (1/√(2π)) ∫ e−(x − t)²/2 dx
et²/2 ne dépend pas de x
= et²/2
l'intégrale est celle de la densité de N(t, 1) : elle vaut 1

Exponentielle

M(t) = ∫0∞ etx λe−λx dx = λ ∫0∞ e−(λ − t)x dx
définition ; la densité est nulle pour x < 0
= λ [−e−(λ − t)x/(λ − t)]0∞
primitive
= λ/(λ − t)
le terme en ∞ tend vers 0 seulement si t < λ ; sinon l'intégrale diverge
Simuler en Python la moyenne de etX sur un échantillon, et le bord du domaine
import numpy as np

rng = np.random.default_rng(1)
n, t = 100_000, 0.3
cases = {"Poisson(2)": (rng.poisson(2, n), np.exp(2 * (np.exp(t) - 1))),
         "N(0, 1)":    (rng.standard_normal(n), np.exp(t**2 / 2)),
         "Exp(1)":     (rng.exponential(1, n), 1 / (1 - t))}
for name, (x, exact) in cases.items():
    est = np.mean(np.exp(t * x))
    print(f"{name:10s}  mean of e^(tX) = {est:.4f}   formula = {exact:.4f}")

# Exp(1) near the edge (t -> 1): Var(e^(tX)) = M(2t) - M(t)^2 is infinite once 2t >= 1
x = rng.exponential(1, (5, n))                      # five independent samples
for t in (0.3, 0.9):
    est = np.mean(np.exp(t * x), axis=1)
    print(f"t = {t}: five estimates {np.round(est, 2)}   formula {1 / (1 - t):.2f}")
Poisson(2)  mean of e^(tX) = 2.0104   formula = 2.0132
N(0, 1)     mean of e^(tX) = 1.0452   formula = 1.0460
Exp(1)      mean of e^(tX) = 1.4326   formula = 1.4286
t = 0.3: five estimates [1.42 1.43 1.43 1.43 1.43]   formula 1.43
t = 0.9: five estimates [6.22 7.64 8.46 7.22 7.83]   formula 10.00

À t = 0,9, M(0,9) = 10 existe, mais e0,9X a une variance infinie, M(1,8) − M(0,9)² : les cinq estimations s'étalent de 6,2 à 8,5, toutes sous la vraie valeur : une bonne part de M(0,9) vient de tirages énormes et rares, que 100 000 tirages contiennent trop peu.

Où ça casse
  • Le domaine. Pour l'exponentielle, M n'existe que pour t < λ. Et elle s'estime mal bien avant le bord : la variance de etX vaut M(2t) − M(t)², finie seulement si 2t < λ (code ci-dessus).
  • et²/2 est la fonction génératrice de N(0, 1) seulement. Pour N(μ, σ²), c'est eμt + σ²t²/2.
  • Une forme fermée n'empêche pas les débordements. Pour un dé, e6t déborde le float32 dès t = 15 et le float64 dès t = 119 : on calcule ln M, un log-sum-exp (notion 2).
Brunton, rectifiéBrunton (37) dit que « la loi des probabilités totales dit que cette intégrale vaut 1 ». C'est la normalisation d'une densité, dont l'intégrale vaut 1. La loi des probabilités totales est la formule de partition P(A) = Σ P(A ∣ Bi) P(Bi) (l03, notion 3).

Poisson : eλ(et − 1) ; N(0, 1) : et²/2 ; exponentielle : λ/(λ − t), pour t < λ seulement. Pour ces trois lois, multiplier par etx redonne la même famille, et la constante est M(t).

Fonction de répartition plutôt que densité : le pic à 6 pieds culture

Brunton 39 · The Lebesgue Measure in Probability

En 37, Brunton a dit que M détermine la fonction de répartition F(x) = P(X ≤ x), et non la densité. Il l'explique sur un exemple réel : les tailles déclarées des hommes américains, sur les permis de conduire ou les applis de rencontre. La courbe est presque une cloche, avec une pile à exactement 6 pieds (183 cm) : dès 5 pieds 10 et demi, on s'arrondit à 6.

Une pile de gens sur une valeur exacte est une masse ponctuelle. Une densité ne peut pas la porter : sur une classe de largeur w, la barre vaut masse/w, infinie quand w → 0. La fonction de répartition, elle, fait un saut. Dans un modèle jouet (taille vraie N(69, 3²) pouces ; la moitié de ceux entre 70,5 et 72 déclarent 72 ; Brunton ne donne aucun chiffre), 7,5 % déclarent 72 pouces, et F passe de 0,766 juste avant 72 à 0,841 en 72.

D'où le slogan de Brunton : intégrer lisse, dériver abîme. F, l'intégrale, existe toujours ; la densité, sa dérivée, pas toujours.

Voir l'idée — plus la classe est fine, plus la barre de 6 pieds monte

Les tailles déclarées du modèle : taille vraie normale (pointillé), et la moitié de ceux qui mesurent entre 70,5 et 72 pouces déclarent 72, soit 6 pieds. Les barres sont en échelle de densité : hauteur = part des hommes dans la classe / largeur. Réduis la largeur des classes : les barres ordinaires se calent sur la courbe, de sommet 0,133, et la barre de 72 monte comme 0,075/w + 0,06, la hauteur ordinaire autour de 72, creux compris : 0,21 à w = 0,5, 0,36 à 0,25, 0,81 à 0,1. Élargis à 2 pouces : le pic disparaît, noyé avec le creux juste en dessous.

La formule
F(x) = P(X ≤ x)     avec une densité : F(x) = ∫−∞x f(u) du     saut en a : F(a) − F(a−) = P(X = a)
  • F existe pour toute variable : croissante, de 0 à 1, continue à droite. La densité f = F′ n'existe que si F est assez lisse.
  • F(a−) est la limite de F juste avant a. Un saut de F en a est une masse P(X = a) > 0 ; une variable à densité a P(X = a) = 0 partout.
  • Une loi mixte, cloche plus pile : F = (1 − m) Fc + m · 𝟙{x ≥ a}, avec m la masse ponctuelle et Fc une fonction de répartition continue.
  • C'est sur F que portent l'unicité de la notion 1 et la conclusion du TCL, P(Zn ≤ x) → Φ(x) : la convergence en loi (convergence in distribution).
Figure 2 — la densité ne peut pas porter le pic, la fonction de répartition le porte par un saut

Modèle jouet, pas des données : taille vraie normale de moyenne 69 pouces (175 cm) et d'écart-type 3 pouces (7,6 cm). En haut, la partie continue des tailles déclarées : un creux entre 70,5 et 72 pouces, ceux qui sont partis à 72 ; la flèche est la masse ponctuelle, qu'aucune hauteur de courbe ne représente. En bas, la fonction de répartition : lisse partout, sauf un saut en 72 égal à la masse. Monte la part arrondie, celle de la zone qui déclare 72 : à ½, le saut vaut 7,5 %, de 0,766 à 0,841 ; à 1, il vaut 15 % et F reste plate sur tout le creux. F(72) reste 0,841 = Φ(1) : l'arrondi déplace des gens sans changer qui est sous 6 pieds.

Exemples simples dé, tailles, somme de pièces, ReLU
  1. Un dé. F est un escalier de six marches de ⅙, en 1, 2, …, 6. Pas de densité du tout : toute la masse est ponctuelle.
  2. Les tailles déclarées (modèle) : P(70,5 ≤ H < 72) = 0,150 ; la moitié s'arrondit, masse 0,075 en 72 ; F(72−) = 0,691 + 0,075 = 0,766 et F(72) = 0,841.
  3. Une somme de pièces. Pour n pièces à ±1, Sn ne prend que les valeurs −n, −n + 2, …, n : sa fonction de répartition est un escalier, sans densité, pour tout n. Celle de la somme standardisée Zn = Sn/√n, un escalier elle aussi, converge pourtant vers Φ, qui a une densité. Le TCL ne peut porter que sur F (figure 3, notion 6).
  4. En ML : la ReLU. Si la pré-activation suit N(0, 1), la sortie max(0, Z) vaut exactement 0 avec probabilité ½ : une masse en 0, plus une demi-cloche. F saute de 0 à ½ en 0. De même, un temps de réponse coupé par un délai d'expiration (timeout) de 30 s empile toutes les requêtes lentes à exactement 30 s.
Preuve le saut est la masse, et une densité n'a pas de masse
F(a) − F(a − h) = P(a − h < X ≤ a)
définition de F
→ P(X = a) quand h → 0
les intervalles ]a − h, a] se resserrent sur le point a
avec une densité : P(X = a) = ∫aa f(u) du = 0
une intégrale sur un seul point est nulle

Une variable qui a une masse en a n'a donc pas de densité. Une densité « avec un pic » est ce que les physiciens appellent une fonction delta : un objet que la théorie de la mesure, celle de Lebesgue qui donne son titre à la vidéo, sait manier, mais qui n'est pas une fonction. Brunton ne fait que la nommer.

Simuler en Python 200 000 tailles déclarées
import numpy as np

rng = np.random.default_rng(6)
h = rng.normal(69, 3, 200_000)                      # true heights, inches
zone = (h >= 70.5) & (h < 72)                       # from 5'10.5" to just under 6'
bump = zone & (rng.random(h.size) < 0.5)            # half of them say "6 feet"
r = np.where(bump, 72.0, h)                         # reported heights
print(f"share reporting exactly 72 in: {np.mean(r == 72):.4f}")

for w in (2, 1, 0.5, 0.1):
    edges = 72 + w * (np.arange(-150, 151) - 0.5)   # bins centred on 72 (bin 150)
    dens, _ = np.histogram(r, edges, density=True)
    other = np.delete(dens, 150).max()
    print(f"bin width {w:>3}: bar at 72 = {dens[150]:.3f}   tallest other = {other:.3f}")

F = lambda x: np.mean(r <= x)                       # empirical CDF
print(f"F(71.999) = {F(71.999):.4f}   F(72) = {F(72):.4f}   jump = {F(72) - F(71.999):.4f}")
share reporting exactly 72 in: 0.0749
bin width   2: bar at 72 = 0.094   tallest other = 0.124
bin width   1: bar at 72 = 0.133   tallest other = 0.134
bin width 0.5: bar at 72 = 0.210   tallest other = 0.134
bin width 0.1: bar at 72 = 0.811   tallest other = 0.137
F(71.999) = 0.7668   F(72) = 0.8417   jump = 0.0749

La hauteur de la classe de 72 dépend de la largeur choisie, celle des autres non : le signe qu'il n'y a pas de densité en 72. Le saut de la fonction de répartition, lui, ne dépend d'aucun choix.

Où ça casse
  • En Europe, un pic à 1,80 m ? Le mécanisme est général : dans toute donnée auto-déclarée, les réponses s'entassent sur des valeurs rondes (en anglais heaping, ou digit preference). Aucun chiffre n'est vérifié ici pour un pic à 1,80 m précisément. Deux faits mesurés. En Suisse, dans les enquêtes sur la santé de 1992 à 2002 (47 192 personnes), les francophones et les italophones déclarent plus souvent une taille finissant par 0 ou 5, les germanophones un chiffre pair autre que 0, soit 2, 4, 6 ou 8 (Faeh et Bopp, BMC Public Health, 2008). En France, l'Étude nationale nutrition santé trouve une taille déclarée supérieure de 0,79 cm en moyenne à la taille mesurée (629 adultes ; BEH 2010, n° 8). 1,80 m finit par 0 : un candidat naturel au pic, à vérifier sur des données.
  • Un histogramme, ou une densité estimée par lissage, étale le pic. Selon la largeur, il disparaît (w = 2) ou devient une bosse : l'estimateur suppose une densité qui n'existe pas.
  • P(X = a) = 0 pour une variable à densité. P(taille vraie = 180 cm exactement) = 0 ; P(taille déclarée = 180 cm) ne l'est pas.
Brunton, rectifiéBrunton (39) écrit F(x) = ∫−∞x f(x) dx, la même lettre pour la borne et pour la variable d'intégration : on écrit ∫−∞x f(u) du. Il appelle la fonction de répartition normale « la fonction d'erreur » : c'est Φ(x) = ½[1 + erf(x/√2)], une parente, pas la même fonction.
Brunton, rectifiéBrunton (39) annonce qu'on prouvera le TCL en montrant que « les moments de la somme convergent vers ceux d'une gaussienne ». La preuve de 44 montre que les fonctions génératrices convergent, et la conclusion porte sur les fonctions de répartition : c'est la convergence en loi, qu'il ne nomme pas.

Une masse ponctuelle n'a pas de densité ; la fonction de répartition la montre par un saut égal à cette masse. C'est pourquoi l'unicité de M et le TCL portent sur F.

Somme indépendante : produit des fonctions génératrices culture

Brunton 40 · Additive Property of the Moment Generating Function

Brunton donne la propriété dont la preuve du TCL a besoin : si X et Y sont indépendantes, la fonction génératrice de X + Y est le produit des deux. Deux faits se combinent. L'exponentielle change une somme en produit, et(x + y) = etx ety ; l'indépendance change l'espérance d'un produit en produit des espérances.

Deux pièces Bernoulli(½) : (½ + ½et)² = ¼ + ½et + ¼e2t. Le coefficient de ekt est P(X + Y = k) : ¼, ½, ¼. Deux dés : le produit développe 36 termes et(x + y)/36, et ceux de même somme se regroupent. Six termes ont x + y = 7, donc P(S = 7) = 6/36.

Brunton fait le lien avec Laplace : en équations différentielles, la transformée change la convolution de deux signaux en produit. Ici, la loi d'une somme est la convolution des deux lois, pénible à calculer, et M la change en produit.

Voir l'idée — les 36 termes du produit, regroupés par x + y

Le produit MX(t) · MY(t) de deux dés développe 36 termes et(x + y)/36, un par case (x, y) ; chaque case porte sa somme x + y. Regroupe par x + y : les cases de même somme forment une colonne, et la hauteur de la colonne est 36 × P(S = s), le triangle 1, 2, …, 6, …, 1. Puis Y = X : seules les six cases de la diagonale gardent une masse, ⅙ chacune, la somme ne prend que des valeurs paires, et le produit ne marche plus. En t = 0,2, M2X(0,2) vaut 5,07 au lieu de MX(0,2)² = 4,55.

La formule
X, Y indépendantes ⇒ MX+Y(t) = MX(t) · MY(t)     Sn = X1 + … + Xn i.i.d. ⇒ MSn(t) = M(t)n
  • L'indépendance sert une seule fois, pour factoriser E[etX etY]. Les deux lois peuvent être différentes, Brunton y insiste.
  • La même loi ne sert qu'à écrire MX₁(t) ⋯ MXₙ(t) = M(t)n.
  • L'égalité vaut pour tout t où MX et MY sont finies.
  • Avec l'unicité (notion 1), reconnaître le produit, c'est reconnaître la loi de la somme.
Exemples simples pièces, binomiale, flux de requêtes, normales, cumulants
  1. Deux pièces : ¼, ½, ¼, la binomiale(2, ½).
  2. n pièces Bernoulli(p) : (1 − p + p et)n = Σk C(n, k) pk (1 − p)n − k ekt, par le binôme de Newton (l02). Le coefficient de ekt est la loi binomiale (l04).
  3. Deux Poisson indépendantes : eλ₁(et − 1) · eλ₂(et − 1) = e(λ₁ + λ₂)(et − 1), la fonction génératrice de Poisson(λ₁ + λ₂). En ML : deux services envoient des requêtes à la même API, 2 et 3 par seconde en moyenne, indépendamment. Le flux fusionné est Poisson(5) : P(aucune requête dans une seconde) = e−5 = 0,0067 (code). C'est la superposition des processus de Poisson (l05, notion 6).
  4. Deux normales indépendantes : eμ₁t + σ₁²t²/2 · eμ₂t + σ₂²t²/2 = e(μ₁ + μ₂)t + (σ₁² + σ₂²)t²/2. La somme est N(μ₁ + μ₂, σ₁² + σ₂²).
  5. Avec le logarithme, le produit devient une somme : ln MX+Y = ln MX + ln MY. Les dérivées de ln M en 0, les cumulants (notion 2), s'additionnent donc. Le premier est la moyenne, le deuxième la variance, le troisième le moment centré d'ordre 3 : pour une somme de pertes indépendantes, ces trois-là s'additionnent. D'où Var(X + Y) = Var X + Var Y sous indépendance (l09, notion 2).
Preuve l'exponentielle, puis l'indépendance
MX+Y(t) = E[et(X+Y)]
définition
= E[etX · etY]
ea + b = ea eb
= E[etX] · E[etY]
X et Y indépendantes, donc etX et etY aussi (fonctions de variables indépendantes), et E[UV] = E[U] E[V] (l08, notion 4) : l'hypothèse sert ici
= MX(t) · MY(t)
définition

La version « soigneuse » que Brunton évoque sans l'écrire, en discret :

Σx Σy et(x+y) P(X = x, Y = y)
LOTUS sur le couple
= Σx Σy etx P(X = x) · ety P(Y = y)
la loi jointe se factorise (l07, notion 4)
= (Σx etx P(X = x)) · (Σy ety P(Y = y))
une double somme d'un produit se coupe en produit de sommes

Pour n variables, on recommence : MSn = MSn−1 · MXn, puisque Xn est indépendante de Sn−1 : il faut l'indépendance mutuelle, deux à deux ne suffit pas (l03, notion 9). X et Y à ±1, indépendantes, et Z = XY sont indépendantes deux à deux, et pourtant MX+Y+Z(1) = 5,30 contre cosh(1)³ = 3,67.

Simuler en Python deux flux de requêtes fusionnés
import numpy as np

rng = np.random.default_rng(2)
n = 1_000_000                                       # one-second windows
a = rng.poisson(2.0, n)                             # requests from service A
b = rng.poisson(3.0, n)                             # requests from service B, independent
s = a + b                                           # merged stream
print(f"merged:     mean {s.mean():.3f}  var {s.var():.3f}  P(0) {np.mean(s == 0):.5f}")
print(f"Poisson(5): mean 5      var 5      P(0) {np.exp(-5):.5f}")

t = 0.3
m = lambda x: np.mean(np.exp(t * x))                # empirical MGF at t
exact = np.exp(5 * (np.exp(t) - 1))
print(f"M_A * M_B = {m(a) * m(b):.4f}   M_(A+B) = {m(s):.4f}   exact = {exact:.4f}")
print(f"dependent, B = A:  M_(2A) = {m(2 * a):.4f}   but M_A^2 = {m(a)**2:.4f}")
merged:     mean 5.005  var 4.998  P(0) 0.00661
Poisson(5): mean 5      var 5      P(0) 0.00674
M_A * M_B = 5.7599   M_(A+B) = 5.7590   exact = 5.7505
dependent, B = A:  M_(2A) = 5.1836   but M_A^2 = 4.0575
Où ça casse
  • Sans indépendance, le produit peut être faux. Y = X : M2X(t) = MX(2t). Pour deux dés à t = 0,2 : 5,07 contre MX(0,2)² = 4,55.
  • La réciproque est fausse. MX+Y = MX MY n'implique pas l'indépendance. X et Y à valeurs dans {0, 1, 2}, de loi jointe, en dix-huitièmes :
    y = 0y = 1y = 2
    x = 0231
    x = 1123
    x = 2312
    Les marges sont uniformes, et la loi de X + Y est 1, 2, 3, 2, 1 neuvièmes, exactement comme sous indépendance : MX+Y = MX MY. Pourtant P(X = 0, Y = 1) = 3/18 = 1/6 ≠ 1/9. Le produit est une conséquence de l'indépendance, pas un test.
  • La famille ne se conserve pas toujours. Deux exponentielles(λ) indépendantes donnent (λ/(λ − t))², qui n'est pas de la forme λ′/(λ′ − t) : la somme suit une loi Gamma(2, λ) (l05, notion 7), pas une exponentielle.
  • Une somme n'est pas un mélange. « X avec probabilité ½, Y sinon » a pour fonction génératrice ½MX + ½MY, pas le produit. Les tailles de la notion 4, cloche plus pile, sont un mélange.
Brunton, rectifiéBrunton (40) compare aux fonctions de transfert : « si on additionne des blocs, la fonction de transfert est le produit ». Ce sont les blocs en série dont les fonctions de transfert se multiplient ; en parallèle, elles s'additionnent. Le fait sous-jacent, qu'il ne dit pas : la densité de X + Y est la convolution fX * fY, et la transformée change une convolution en produit.
Brunton, rectifiéBrunton (40) écrit MSn(t) = MX(t)n pour « un ensemble de variables » indépendantes. La puissance n demande en plus qu'elles aient la même loi : il le dit en ouvrant la vidéo (« identical independent »), mais ne le rappelle pas au moment d'écrire la puissance.

X et Y indépendantes : MX+Y = MX · MY ; i.i.d. : MSn = Mn. L'exponentielle change la somme en produit, l'indépendance factorise l'espérance ; la réciproque est fausse.

La preuve du TCL en six étapes, avec ses trous culture

Brunton 44 · Proof of the Central Limit Theorem

La preuve de Brunton enchaîne tout ce qui précède. Les Xi sont i.i.d., de moyenne 0 et de variance σ², et Zn = Sn/(σ√n) est leur somme standardisée. Il suffit de montrer que MZn(t) tend vers et²/2, la fonction génératrice de N(0, 1).

Le cœur tient en une ligne. Le produit (notion 5) donne MZn(t) = M(t/(σ√n))n. Près de 0, M(u) ≈ 1 + σ²u²/2 (notion 2 : moyenne 0, E[X²] = σ²). Donc MZn(t) ≈ (1 + t²/(2n))n → et²/2. Les moments au-delà du deuxième disparaissent dans la limite : c'est pour ça que la loi de départ ne compte pas.

Pour pile ou face à ±1 (σ = 1), M = cosh, et MZn(1) = cosh(1/√n)n vaut 1,543 pour n = 1, 1,635 pour n = 10, 1,647 pour n = 100, contre e0,5 = 1,649. La preuve dépliable donne les six étapes, et quatre trous.

Voir l'idée — MZn se rapproche de et²/2

En rouge la cible et²/2, en bleu MZn(t) = M(t/√n)n. Pile ou face à ±1 : à n = 1 la courbe est cosh t, déjà proche près de 0 ; monte n : en t = 1, elle passe de 1,543 à 1,635 (n = 10), puis 1,647 (n = 100), contre 1,649. Exponentielle centrée, Exp(1) − 1, asymétrique : à n = 1 elle n'existe que pour t < 1 et devient infinie au trait vertical t = √n ; ce domaine s'élargit comme √n, et l'approche est plus lente, 1,895 à n = 10 et 1,709 à n = 100.

Le théorème démontré
Xi i.i.d., E[Xi] = 0, Var(Xi) = σ² ∈ ]0, ∞[  ⇒  P(Sn/(σ√n) ≤ x) → Φ(x) pour tout x
  • Indépendance : le produit, étape 2. Même loi : la puissance n.
  • Moyenne 0 : le terme en t disparaît, étape 3. Si E[Xi] = μ, on applique la preuve à Xi − μ : Zn = (Sn − nμ)/(σ√n) = (X̄n − μ)/(σ/√n), l'énoncé de l11, notion 1.
  • Variance finie : le terme en t² existe et ne dépend que de σ².
  • Hypothèse en plus, propre à cette preuve : M finie près de 0. Le théorème est vrai sans elle (où ça casse).
  • La conclusion porte sur les fonctions de répartition (notion 4) : une convergence en loi.
Figure 3 — la conclusion porte sur F : l'escalier de Zn épouse Φ

La fonction de répartition de Zn = Sn/√n pour n pièces à ±1 (escalier bleu) et Φ (rouge). Zn est discrète : elle n'a pas de densité, quel que soit n. Monte n : les marches rétrécissent, et le plus grand écart vertical entre l'escalier et Φ tombe de 0,341 (n = 1) à 0,123 (n = 10), 0,040 (n = 100) et 0,020 (n = 400), à peu près 0,4/√n. C'est cette convergence que démontre la preuve, une fois complétée par le théorème de continuité.

Exemples simples la preuve en chiffres, pourquoi √n, une loi asymétrique, μ ≠ 0
  1. Pile ou face à ±1, en chiffres. M = cosh, σ = 1. À t = 1, l'étape 6 sans εn, (1 + 0,5/n)n, vaut 1,629 pour n = 10 et 1,647 pour n = 100 ; la vraie MZn(1) vaut 1,635 et 1,647 : le terme négligé εn pèse de moins en moins.
  2. Pourquoi diviser par √n. Sans normalisation, MSn(t) = cosh(t)n → ∞ pour tout t ≠ 0 : la somme s'étale sans limite. En divisant par n, c'est-à-dire pour la moyenne X̄n, cosh(t/n)n → 1, la fonction génératrice de la constante 0 : c'est la loi des grands nombres (l10, notion 4). √n est la seule échelle où la limite n'est ni plate ni infinie.
  3. Une loi asymétrique, l'exponentielle centrée. Le terme négligé, n · εn, vaut 0,160 à n = 10, 0,037 à n = 100, 0,011 à n = 1 000, à peu près t³/(3√n) pour n grand (0,160 contre 0,105 à n = 10) : il vient du troisième moment, et c'est l'asymétrie qui ralentit la convergence (l11, notion 2).
  4. μ ≠ 0, le devoir de Brunton : appliquer la preuve à Yi = Xi − μ, de moyenne 0 et de variance σ². Rien d'autre ne change.
Preuve les six étapes de Brunton, la règle de chacune, puis ses quatre trous
1. Montrer MZn(t) → et²/2 pour tout t près de 0
et²/2 est la fonction génératrice de N(0, 1) (notion 3) ; conclure demandera un théorème de continuité (trou 1)
2. MSn(t) = M(t)n
produit (notion 5) : l'indépendance, puis la même loi
3. M(u) = 1 + 0 · u + σ²u²/2 + r(u), avec r(u)/u² → 0
Taylor en 0 (notion 2) : M(0) = 1, M′(0) = E[X] = 0, M″(0) = E[X²] = σ² (trou 2)
4. MZn(t) = MSn(t/(σ√n)) = M(t/(σ√n))n
changement d'échelle : MbY(t) = E[e(bt)Y] = MY(bt), avec b = 1/(σ√n), puis l'étape 2
5. M(t/(σ√n)) = 1 + t²/(2n) + εn, avec εn = r(t/(σ√n))
substituer u = t/(σ√n) dans l'étape 3 ; les σ² se simplifient (trou 3)
6. MZn(t) = (1 + (t²/2 + nεn)/n)n → et²/2
(1 + an/n)n → ea quand an → a ; ici an = t²/2 + nεn → t²/2 ; en passant au ln, n ln(1 + an/n) = an + O(an²/n) → a
donc P(Zn ≤ x) → Φ(x) ∎
théorème de continuité (trou 1)

Les quatre trous.

  1. Unicité au lieu de continuité. L'unicité (notion 1) dit que deux lois de même M sont égales ; elle ne suffit pas ici, puisque MZn n'est jamais égale à et²/2, elle s'en approche. Il faut un théorème de continuité : si Mn(t) → M(t) sur un intervalle autour de 0, et M est la fonction génératrice d'une loi, alors les fonctions de répartition convergent, en tout point où la limite est continue (Curtiss, 1942). Ce théorème s'appuie sur l'unicité pour identifier la limite.
  2. Le reste. Écrire le reste « ε d'ordre t³ » suppose un troisième moment. C'est acquis ici, puisque M est finie près de 0. Avec seulement une variance finie (trou 4), on sait seulement que le reste est négligeable devant u², et cela suffit.
  3. n · εn → 0, pas seulement εn → 0. Dans (1 + t²/(2n) + εn)n, un εn de l'ordre de 1/n changerait la limite. Il ne suffit donc pas que εn → 0, il faut savoir à quelle vitesse. C'est vrai ici : n · εn = (t²/σ²) · r(u)/u², qui tend vers 0 avec u.
  4. L'hypothèse ajoutée : M finie près de 0. Elle exclut des lois de variance finie pour lesquelles le TCL est vrai, comme la loi de Student à 3 degrés de liberté. La preuve générale refait les mêmes six étapes avec la fonction caractéristique φ(t) = E[eitX], qui existe toujours : i² = −1, et eiθ = cos θ + i sin θ est un point du cercle de rayon 1, d'où |eitX| = 1 et une espérance toujours finie. Pour N(0, 1), φ(t) = M(it) = e−t²/2. On obtient φZn(t) → e−t²/2, et le théorème de continuité de Lévy conclut. Seule la variance finie sert alors.
Simuler en Python MZn(1) vers e0,5, et le terme négligé
import numpy as np

t = 1.0
coin = lambda u: np.cosh(u)                         # X = +1 or -1: mean 0, sigma 1
cexp = lambda u: np.exp(-u) / (1 - u)               # Exp(1) - 1: mean 0, sigma 1, skewed
print("     n   coin M_Zn(1)   exp M_Zn(1)   n * eps_n (exp)")
for n in (2, 10, 100, 1000, 10_000):
    u = t / np.sqrt(n)                              # step 4: M at t / (sigma sqrt n)
    eps = cexp(u) - 1 - t**2 / (2 * n)              # step 5: left after 1 + t^2/(2n)
    print(f"{n:6d}   {coin(u)**n:.5f}        {cexp(u)**n:.5f}       {n * eps:.5f}")
print(f"limit e^(t^2/2) = {np.exp(t**2 / 2):.5f}")

# Monte Carlo: standardized sums of 100 exponentials
rng = np.random.default_rng(3)
z = (rng.exponential(1, (200_000, 100)).sum(axis=1) - 100) / np.sqrt(100)
print(f"E[e^Z] = {np.mean(np.exp(z)):.4f}   (exact {cexp(0.1)**100:.4f})")
print(f"P(Z <= 1) = {np.mean(z <= 1):.4f}   (Phi(1) = 0.8413)")
     n   coin M_Zn(1)   exp M_Zn(1)   n * eps_n (exp)
     2   1.58909        2.83398       0.86688
    10   1.63539        1.89464       0.15989
   100   1.64735        1.70924       0.03749
  1000   1.64858        1.66662       0.01093
 10000   1.64871        1.65427       0.00337
limit e^(t^2/2) = 1.64872
E[e^Z] = 1.7160   (exact 1.7092)
P(Z <= 1) = 0.8410   (Phi(1) = 0.8413)

La pièce converge vite, l'exponentielle lentement, et n · εn décroît comme 1/√n : à n = 100, il vaut 0,037, près de 1/(3√100) = 0,033.

Où ça casse
  • Pas de fonction génératrice : preuve inapplicable, TCL intact. Student à 3 degrés de liberté : variance 3, M(t) = ∞ pour t ≠ 0. La somme standardisée devient normale quand même ; la preuve par la fonction caractéristique le montre.
  • Variance infinie : plus de TCL classique. Pour une loi de Cauchy, φ(t) = e−|t| et φ(t/n)n = e−|t| : la moyenne de n variables de Cauchy est encore une Cauchy, quel que soit n (l11, notion 4).
  • Sans indépendance, l'étape 2 tombe. MSn n'est plus forcément Mn (notion 5), et, s'il y a corrélation, la variance de la somme n'est plus nσ² (l09, notion 2).
  • Pour n fixé, c'est une approximation. Sn ≈ N(nμ, nσ²), en général pas « = » (exact seulement si les Xi sont normales) ; pour des pièces, Sn est discrète. La vitesse dépend de l'asymétrie (exemple 3).
Brunton, rectifiéBrunton (44) conclut : « la fonction génératrice identifie la loi de façon unique, donc même fonction génératrice, même loi ». Trois corrections. MZn n'atteint jamais et²/2, elle s'en approche : il faut un théorème de continuité (Curtiss pour les fonctions génératrices, Lévy pour les fonctions caractéristiques), pas l'unicité. Pour le terme négligé, il dit qu'εn tend vers 0 « assez vite pour être négligé », sans dire à quelle vitesse : il faut n · εn → 0. Et la preuve suppose M finie près de 0, ce que le théorème n'exige pas.
Brunton, rectifiéBrunton (44) dit que les deux lois auront « la même densité ». Une somme de pièces n'a pas de densité : la conclusion porte sur la fonction de répartition (notion 4), comme son propre énoncé avec Φ. Et ses formes « Sn est normale N(0, nσ²) » (36, 44) sont des approximations pour n grand, exactes seulement si les Xi sont normales.

MZn(t) = M(t/(σ√n))n = (1 + t²/(2n) + εn)n → et²/2 : seules la moyenne et la variance survivent. La preuve demande en plus M finie près de 0, n · εn → 0 et un théorème de continuité ; la fonction caractéristique E[eitX] lève la première hypothèse.

Résumé

À retenir
  1. M(t) = E[etX] ; ses coefficients de Taylor sont E[Xk]/k! ; finie près de 0, elle détermine la loi.
  2. Les moments seuls ne déterminent pas toujours la loi : la log-normale a des sœurs aux mêmes moments.
  3. M(k)(0) = E[Xk] et Var = M″(0) − M′(0)² ; pour Poisson, moyenne = variance = λ.
  4. Poisson : eλ(et − 1) ; N(0, 1) : et²/2 ; exponentielle : λ/(λ − t), pour t < λ.
  5. Une masse ponctuelle n'a pas de densité, F la montre par un saut : l'unicité et le TCL portent sur F.
  6. Indépendance ⇒ MX+Y = MX MY ; la réciproque est fausse.
  7. TCL : M(t/(σ√n))n → et²/2. Les trous : M supposée finie, n · εn → 0 à montrer, continuité plutôt qu'unicité.
« La fonction génératrice M(t) = E[etX] range tous les moments dans une fonction : ses dérivées en 0 sont les moments et, quand elle est finie près de 0, elle détermine la loi. Sous indépendance, la fonction génératrice d'une somme est le produit des fonctions génératrices. Pour le TCL, celle de la somme standardisée vaut M(t/(σ√n))n ≈ (1 + t²/(2n))n, qui tend vers et²/2, celle de la normale ; la preuve rigoureuse passe par la fonction caractéristique et le théorème de continuité de Lévy. »

Chaîne verbalisée — une prise, à voix haute

6 maillons · clique pour révéler après avoir dit
  1. Qu'est-ce que M(t), et que vaut M(0) ?
    La moyenne de etX, un nombre pour chaque t fixé ; M(0) = E[1] = 1 pour toute loi.
  2. Comment obtient-on E[X] et Var(X) à partir de M ?
    E[X] = M′(0), E[X²] = M″(0), Var = M″(0) − M′(0)² : dériver en t fait descendre un x, et e⁰ = 1.
  3. Les moments déterminent-ils toujours la loi ?
    Non : la log-normale partage tous ses moments avec d'autres lois. Si M est finie sur un intervalle autour de 0, oui.
  4. Pourquoi l'unicité parle-t-elle de la fonction de répartition, et pas de la densité ?
    Une loi peut avoir des masses ponctuelles, comme les tailles déclarées à 6 pieds : pas de densité, mais F existe toujours, avec un saut égal à la masse.
  5. Que vaut MX+Y, et sous quelle hypothèse ?
    MX · MY, si X et Y sont indépendantes : et(x+y) = etx ety, puis l'espérance du produit est le produit des espérances.
  6. Résume la preuve du TCL en une ligne, puis donne un de ses trous.
    MZn(t) = M(t/(σ√n))n = (1 + t²/(2n) + εn)n → et²/2. Trous : M supposée finie (la fonction caractéristique l'évite), n · εn → 0 à montrer, et un théorème de continuité au lieu de l'unicité.