La planche de Galton Grand Oral · mathématiques, SVT, HGGSP, HLP Un support de connaissances pour construire sa propre question

← Tous les textes du Grand Oral

MathsSVTHGGSPHLP

Des billes tombent à travers des rangées de clous. À chaque clou, une bille part à gauche ou à droite, au hasard. Personne ne peut prévoir où tombera une bille donnée ; pourtant, quand on en lâche des centaines, elles dessinent presque toujours la même forme, une cloche. La planche de Galton fait voir l'une des idées les plus profondes des probabilités : le hasard individuel devient une régularité collective. Elle porte le nom d'un savant britannique dont la vie mêle des découvertes majeures sur l'hérédité et la statistique, et la fondation de l'eugénisme, une doctrine aux conséquences tragiques. Ce texte rassemble ces connaissances ; à chacun d'y choisir une direction et d'y construire sa question.

Sommaire
  1. La planche et la loi binomiale
  2. Fréquence et probabilité : la loi des grands nombres
  3. Vers la loi normale
  4. Le jeu du fakir : l'espérance
  5. Francis Galton, l'hérédité et la régression vers la moyenne
  6. De la statistique à l'eugénisme : un regard critique
  7. Des directions pour construire sa question
La planche et la loi binomiale

La planche compte $n$ rangées de clous disposées en quinconce. À chaque rangée, la bille va à droite avec la probabilité $p$ et à gauche avec la probabilité $1 - p$, indépendamment des rangées précédentes ; pour une planche bien construite, $p = \dfrac{1}{2}$. En bas, $n + 1$ cases sont numérotées de $0$ à $n$ : une bille qui est allée $k$ fois à droite tombe dans la case $k$.

var opt = {fontSize: 12, useKatex: false, useMathJax: false, parse: false, cssStyle: 'background:#fff;padding:0 3px;border-radius:3px'}; var n = 10, actif = false, billes = [], compte = [], total = 0, lances = 0, MAX = 600, tic = 0, k, r; function zero() { billes = []; compte = []; for (k = 0; k <= n; k++) { compte.push(0); } total = 0; lances = 0; } zero(); var C = [1]; for (k = 1; k <= n; k++) { C.push(C[k-1]*(n - k + 1)/k); } var clous = []; for (r = 0; r < n; r++) { for (k = 0; k <= r; k++) { clous.push([5 - r/2 + k, 10 - 0.95*r]); } } board.create('curve', [clous.reduce(function (a, c) { return a.concat([c[0] - 0.07, c[0] + 0.07, NaN]); }, []), clous.reduce(function (a, c) { return a.concat([c[1], c[1], NaN]); }, [])], {strokeColor: '#37474f', strokeWidth: 5, lineCap: 'butt', highlight: false}); for (k = 0; k <= n + 1; k++) { board.create('segment', [[k - 0.5, -5.2], [k - 0.5, 0.3]], {strokeColor: '#b0bec5', strokeWidth: 1, fixed: true, highlight: false}); } board.create('segment', [[-0.5, -5.2], [10.5, -5.2]], {strokeColor: '#546e7a', strokeWidth: 1.5, fixed: true, highlight: false}); function echelle() { var m = 1; for (k = 0; k <= n; k++) { m = Math.max(m, compte[k], total*C[k]/1024); } return 5.2/Math.max(m, 40); } var barres = board.create('curve', [[0], [0]], {strokeColor: '#1e88e5', strokeWidth: 15, lineCap: 'butt'}); barres.updateDataArray = function () { var e = echelle(), X = [], Y = []; for (k = 0; k <= n; k++) { if (compte[k]) { X.push(k, k, NaN); Y.push(-5.2, -5.2 + e*compte[k], NaN); } } this.dataX = X; this.dataY = Y; }; var theo = board.create('curve', [[0], [0]], {strokeColor: '#c62828', strokeWidth: 2, dash: 2}); theo.updateDataArray = function () { var e = echelle(), X = [], Y = []; for (k = 0; k <= n; k++) { X.push(k - 0.4, k + 0.4, NaN); Y.push(-5.2 + e*total*C[k]/1024, -5.2 + e*total*C[k]/1024, NaN); } this.dataX = X; this.dataY = Y; }; var pts = board.create('curve', [[0], [0]], {strokeColor: '#ef6c00', strokeWidth: 7, lineCap: 'butt'}); pts.updateDataArray = function () { var X = [], Y = []; billes.forEach(function (b) { var r0 = Math.floor(b.t), f = b.t - r0, x0 = 5 - r0/2 + b.d[r0], x1 = 5 - (r0 + 1)/2 + b.d[r0 + 1], y = 10.6 - 0.95*b.t, x = x0 + (x1 - x0)*f; X.push(x - 0.08, x + 0.08, NaN); Y.push(y, y, NaN); }); this.dataX = X; this.dataY = Y; }; board.create('text', [-0.6, 11.1, function () { return total + ' billes arrivées'; }], opt); board.create('button', [6.6, 11.25, 'Recommencer', function () { zero(); actif = true; }], {fontSize: 11, useKatex: false, useMathJax: false, parse: false}); function nouvelle() { var d = [0]; for (var q = 0; q < n; q++) { d.push(d[q] + (Math.random() < 0.5 ? 1 : 0)); } d.push(d[n]); billes.push({t: 0, d: d}); lances++; } if ('IntersectionObserver' in window) { new IntersectionObserver(function (e) { if (e[0].isIntersecting) { actif = true; } }, {threshold: 0.4}).observe(board.containerObj); } else { actif = true; } setInterval(function () { if (!actif) { return; } tic++; if (lances < MAX && tic % 2 === 0) { nouvelle(); } billes.forEach(function (b) { b.t += 0.5; }); billes = billes.filter(function (b) { if (b.t >= n) { compte[b.d[n]]++; total++; return false; } return true; }); board.update(); }, 40); Une planche de Galton à $10$ rangées. Les billes s'accumulent dans les $11$ cases (en bleu) ; les traits rouges indiquent les effectifs prévus par la loi binomiale, $N \times \dbinom{10}{k}\dfrac{1}{2^{10}}$ pour $N$ billes.

Compter les chemins. Un chemin à travers la planche est une suite de $n$ choix « gauche » ou « droite ». Pour arriver dans la case $k$, il faut choisir les $k$ rangées où la bille va à droite parmi les $n$ : il y a $\dbinom{n}{k}$ chemins. Les nombres de chemins qui mènent aux différentes cases forment donc une ligne du triangle de Pascal, et c'est bien ce que l'on observe en écrivant sur chaque clou le nombre de chemins qui y conduisent : chaque nombre est la somme des deux nombres situés au-dessus.

Chaque chemin a la probabilité $p^k(1-p)^{n-k}$, qui vaut $\dfrac{1}{2^n}$ quand $p = \dfrac{1}{2}$. Le numéro $X$ de la case suit la loi binomiale de paramètres $n$ et $p$ :

$$P(X = k) = \binom{n}{k}\,p^k\,(1-p)^{n-k}.$$

Son espérance est $E(X) = np$ et sa variance $V(X) = np(1-p)$. Pour $n = 10$ et $p = \dfrac{1}{2}$, la case du milieu reçoit une bille avec la probabilité $\dbinom{10}{5}\dfrac{1}{2^{10}} = \dfrac{252}{1\,024} \approx 0{,}246$, et chacune des cases extrêmes avec la probabilité $\dfrac{1}{1\,024}$ : sur $600$ billes, on en attend environ $148$ au milieu, et moins d'une dans chaque case du bord.

Une planche de Galton en bois et verre : des billes se sont accumulées en colonnes formant une cloche. Une planche de Galton réalisée pour une exposition. Objet : Estes Objethos Atelier, photo : Rodrigo Argenton, Wikimedia Commons, licence CC BY-SA 4.0.
Fréquence et probabilité : la loi des grands nombres

Pourquoi la forme dessinée par les billes ressemble-t-elle de plus en plus à la loi binomiale quand on lâche beaucoup de billes ? La réponse est la loi des grands nombres, le lien entre fréquence et probabilité. Elle est très souvent énoncée de façon fausse. Il faut donc la formuler avec soin.

Ce que dit la loi

On répète $N$ fois, de façon indépendante, une même expérience aléatoire, et l'on s'intéresse à un événement $A$ de probabilité $p$ (par exemple « la bille tombe dans la case du milieu », avec $p \approx 0{,}246$). Notons $S_N$ le nombre de fois où $A$ se réalise et $F_N = \dfrac{S_N}{N}$ sa fréquence. Le point essentiel est que $F_N$ est une variable aléatoire : avant de faire les $N$ expériences, on ne connaît pas sa valeur, et deux séries de $N$ expériences donnent en général deux fréquences différentes.

Loi faible des grands nombres

Pour tout réel $\varepsilon > 0$,

$$\lim_{N \to +\infty} P\big(|F_N - p| \geqslant \varepsilon\big) = 0.$$

Autrement dit : on choisit d'avance une marge $\varepsilon$, aussi petite qu'on veut. La probabilité que la fréquence s'écarte de $p$ de plus de cette marge tend vers $0$ quand le nombre d'expériences augmente. La phrase juste est donc : plus le nombre d'expériences est grand, plus il est probable que la fréquence soit proche de la probabilité.

La démonstration. $S_N$ suit la loi binomiale de paramètres $N$ et $p$, donc $E(F_N) = \dfrac{Np}{N} = p$ et $V(F_N) = \dfrac{Np(1-p)}{N^2} = \dfrac{p(1-p)}{N}$. L'inégalité de Bienaymé-Tchebychev, au programme de terminale, donne

$$P\big(|F_N - p| \geqslant \varepsilon\big) \leqslant \frac{p(1-p)}{N\varepsilon^2},$$

et le membre de droite tend vers $0$ quand $N$ tend vers $+\infty$. On conclut avec le théorème des gendarmes, puisqu'une probabilité est positive.

Des ordres de grandeur. Pour une pièce équilibrée ($p = \dfrac{1}{2}$) et une marge $\varepsilon = 0{,}1$ :

$N$majoration de Bienaymé-Tchebychevvaleur exacte de $P(|F_N - 0{,}5| \geqslant 0{,}1)$
$10$$2{,}5$ (inutile)$0{,}754$
$100$$0{,}25$$0{,}057$
$1\,000$$0{,}025$environ $3 \times 10^{-10}$

La majoration est grossière, mais elle suffit pour démontrer la loi. Avec $10$ lancers, il est très probable (plus de trois chances sur quatre) que la fréquence de « pile » soit à $0{,}1$ ou plus de $0{,}5$ ; avec $1\,000$ lancers, c'est extrêmement improbable, mais pas impossible.

La figure ci-dessous rend la loi visible. On fixe $N$, on fait $300$ fois l'expérience « lancer $N$ fois une pièce et calculer la fréquence de pile », et l'on trace l'histogramme des $300$ fréquences obtenues. Les fréquences qui s'écartent de $0{,}5$ d'au moins $\varepsilon$ sont en rouge. Quand $N$ augmente, l'histogramme se resserre autour de $0{,}5$ et la part de rouge diminue : c'est exactement ce que dit le théorème, une probabilité qui diminue.

var opt = {fontSize: 11, useKatex: false, useMathJax: false, parse: false, cssStyle: 'background:#fff;padding:0 3px;border-radius:3px'}; var Ns = [10, 20, 50, 100, 200, 500, 1000, 2000]; var sN = board.create('slider', [[0.02, -0.12], [0.45, -0.12], [0, 3, 7]], {snapWidth: 1, withLabel: false}); var sE = board.create('slider', [[0.55, -0.12], [0.98, -0.12], [0.02, 0.1, 0.2]], {snapWidth: 0.01, withLabel: false}); var R = 300, freqs = [], cle = ''; function simule() { var N = Ns[Math.round(sN.Value())]; freqs = []; for (var i = 0; i < R; i++) { var s = 0; for (var j = 0; j < N; j++) { if (Math.random() < 0.5) { s++; } } freqs.push(s/N); } } board.create('segment', [[0, 0], [1, 0]], {strokeColor: '#546e7a', strokeWidth: 1.5, fixed: true, highlight: false}); board.create('segment', [[0.5, 0], [0.5, 1.0]], {strokeColor: '#78909c', strokeWidth: 1, dash: 2, fixed: true, highlight: false}); [0, 0.25, 0.5, 0.75, 1].forEach(function (x) { board.create('text', [x - 0.03, -0.05, String(x).replace('.', ',')], Object.assign({}, opt, {cssStyle: ''})); }); function hist(rouge) { var N = Ns[Math.round(sN.Value())], e = sE.Value(), cl = N + ''; if (cl !== cle) { simule(); cle = cl; } var nb = 50, c = []; for (var b = 0; b < nb; b++) { c.push([0, 0]); } freqs.forEach(function (f) { var b = Math.min(nb - 1, Math.floor(f*nb)); c[b][Math.abs(f - 0.5) >= e - 1e-12 ? 1 : 0]++; }); var X = [], Y = [], m = 0; c.forEach(function (q) { m = Math.max(m, q[0] + q[1]); }); var h = 0.95/Math.max(m, 1); c.forEach(function (q, b) { var x = (b + 0.5)/nb; if (rouge && q[1]) { X.push(x, x, NaN); Y.push(q[0]*h, (q[0] + q[1])*h, NaN); } if (!rouge && q[0]) { X.push(x, x, NaN); Y.push(0, q[0]*h, NaN); } }); return [X, Y]; } var bleu = board.create('curve', [[0], [0]], {strokeColor: '#1e88e5', strokeWidth: 5, lineCap: 'butt'}); bleu.updateDataArray = function () { var r = hist(false); this.dataX = r[0]; this.dataY = r[1]; }; var rouge = board.create('curve', [[0], [0]], {strokeColor: '#e53935', strokeWidth: 5, lineCap: 'butt'}); rouge.updateDataArray = function () { var r = hist(true); this.dataX = r[0]; this.dataY = r[1]; }; board.create('text', [0.0, 1.13, function () { var N = Ns[Math.round(sN.Value())], e = sE.Value(), out = freqs.filter(function (f) { return Math.abs(f - 0.5) >= e - 1e-12; }).length; return Math.round(100*out/R) + ' % des fréquences hors de ]' + (0.5 - e).toFixed(2).replace('.', ',') + ' ; ' + (0.5 + e).toFixed(2).replace('.', ',') + '['; }], opt); board.create('text', [0.0, 1.05, function () { var N = Ns[Math.round(sN.Value())], e = sE.Value(), b = 0.25/(N*e*e); return 'Bienaymé-Tchebychev : ' + (b >= 1 ? 'majoration inutile' : 'au plus ' + (100*b).toFixed(1).replace('.', ',') + ' %'); }], opt); board.create('text', [0.02, -0.22, function () { return 'N = ' + Ns[Math.round(sN.Value())]; }], opt); board.create('text', [0.55, -0.22, function () { return 'ε = ' + sE.Value().toFixed(2).replace('.', ','); }], opt); board.create('button', [0.72, 0.9, 'Relancer', function () { cle = ''; board.update(); }], {fontSize: 11, useKatex: false, useMathJax: false, parse: false}); board.update(); Histogramme de $300$ fréquences de pile, chacune calculée sur $N$ lancers. Le curseur de gauche choisit $N$ (de $10$ à $2\,000$), celui de droite la marge $\varepsilon$. En rouge, les fréquences qui s'écartent de $0{,}5$ d'au moins $\varepsilon$ ; leur proportion estime la probabilité dont parle la loi.
Ce que la loi ne dit pas

Voici les contresens les plus fréquents. Chacun peut être réfuté par un exemple simple.

  • « La fréquence se rapproche de la probabilité à chaque nouvelle expérience. » Faux. Si l'on a obtenu exactement $5$ piles en $10$ lancers, la fréquence vaut $0{,}5$ ; après le onzième lancer, elle vaut $\dfrac{6}{11}$ ou $\dfrac{5}{11}$, elle s'est éloignée de $0{,}5$. Les fréquences observées ne forment pas une suite qui se rapproche régulièrement de $p$.
  • « Avec beaucoup d'expériences, la fréquence est proche de la probabilité. » Faux, si on l'affirme comme une certitude. Obtenir $1\,000$ piles en $1\,000$ lancers est possible, de probabilité $\dfrac{1}{2^{1\,000}}$, qui n'est pas nulle. Ce qui devient petit, c'est la probabilité d'un grand écart, pas sa possibilité.
  • « Le nombre de piles se rapproche de la moitié du nombre de lancers. » Faux. C'est la fréquence, l'écart relatif, qui se resserre ; l'écart absolu entre le nombre de piles et $\dfrac{N}{2}$, lui, est typiquement de l'ordre de $\sqrt{N}$, et grandit. La probabilité d'obtenir exactement autant de piles que de faces diminue même : elle vaut environ $0{,}246$ pour $10$ lancers, $0{,}080$ pour $100$ lancers et $0{,}025$ pour $1\,000$ lancers.
  • « Après une série de faces, pile a plus de chances de sortir, pour compenser. » Faux : c'est l'erreur du parieur. Les lancers sont indépendants, et la pièce n'a pas de mémoire : après dix faces, pile a toujours une chance sur deux. Le 18 août 1913, au casino de Monte-Carlo, le noir sortit $26$ fois de suite à la roulette, et des joueurs perdirent des fortunes en misant sur le rouge, persuadés qu'il « devait » sortir. La fréquence ne revient pas vers $p$ par compensation, mais par dilution : les dix faces initiales pèsent de moins en moins dans la moyenne des milliers de lancers suivants.

Il existe aussi une loi forte des grands nombres, démontrée par Émile Borel en 1909 pour le jeu de pile ou face : avec une probabilité égale à $1$, la suite des fréquences converge vers $p$. Elle dépasse le programme de terminale, et elle ne dit pas non plus que la convergence a lieu pour toutes les suites de lancers : la suite « que des piles » existe, mais l'ensemble de ces suites exceptionnelles a une probabilité nulle. Au lycée, on énonce et on démontre la loi faible.

Vers la loi normale

Quand le nombre de rangées augmente, l'histogramme des cases prend une forme en cloche, toujours la même une fois recentrée et mise à l'échelle. En 1733, Abraham de Moivre montre que, pour $p = \dfrac{1}{2}$, les probabilités de la loi binomiale s'approchent d'une courbe d'équation de la forme $y = C\,\mathrm{e}^{-x^2}$ ; Pierre-Simon de Laplace généralise le résultat en 1812. C'est le théorème de Moivre-Laplace, au-delà du programme de terminale : la loi binomiale de paramètres $n$ et $p$ ressemble, pour $n$ grand, à la loi normale de même espérance $\mu = np$ et de même écart type $\sigma = \sqrt{np(1-p)}$, dont la densité est

$$f(x) = \frac{1}{\sigma\sqrt{2\pi}}\,\mathrm{e}^{-\frac{(x - \mu)^2}{2\sigma^2}}.$$

Cette courbe en cloche, dite aussi courbe de Gauss, est partout. Le théorème central limite, qui généralise celui de Moivre-Laplace, en donne la raison : une grandeur qui résulte de l'addition de très nombreux petits effets indépendants suit approximativement une loi normale, quelle que soit la loi de chacun de ces effets. Chaque clou de la planche est un petit effet, la case finale est leur somme. Les erreurs de mesure, la taille des adultes, le poids des graines d'une plante se comportent souvent de cette façon.

Galton était fasciné par cette régularité. Dans Natural Inheritance (1889), il écrit en substance que la loi des erreurs aurait été divinisée par les Grecs s'ils l'avaient connue, tant elle fait régner l'ordre au milieu de la plus grande confusion apparente. Il construit sa planche vers 1873 justement pour la montrer.

Trois schémas de planches de Galton : à gauche une planche simple avec une cloche en bas, au milieu une planche à deux étages séparés par des cases, à droite une planche dont les cases s'évasent. Les schémas de la planche dans Natural Inheritance (1889). La figure du milieu, à deux étages, sert à Galton à expliquer comment la variation se transmet d'une génération à la suivante. Francis Galton, Wikimedia Commons, domaine public.
Le jeu du fakir : l'espérance

Dans les fêtes foraines, le « jeu du fakir » (du nom des fakirs qui s'allongent sur des lits de clous) est une planche de Galton : le joueur paie une mise, lâche une bille, et reçoit la somme inscrite sous la case où elle tombe. Comment l'organisateur doit-il choisir ces sommes pour gagner de l'argent, tout en rendant le jeu attirant ?

Prenons une planche à $4$ rangées. Les $5$ cases ont pour probabilités $\dfrac{1}{16}$, $\dfrac{4}{16}$, $\dfrac{6}{16}$, $\dfrac{4}{16}$ et $\dfrac{1}{16}$. L'organisateur affiche de grosses sommes sur les bords, qui attirent l'œil, et de petites au centre, où tombent la plupart des billes. Notons $a$ la somme des cases du bord, $b$ celle des cases intermédiaires, $c$ celle de la case centrale. Le gain $G$ du joueur a pour espérance

$$E(G) = \frac{2a + 8b + 6c}{16}.$$

Avec une mise de $2$ € et les sommes $a = 10$ €, $b = 2$ €, $c = 0$ €, on trouve $E(G) = \dfrac{20 + 16}{16} = 2{,}25$ € : le jeu est favorable au joueur, et l'organisateur perd en moyenne $0{,}25$ € par partie. Avec $a = 8$ €, il est équitable. Avec $a = 8$ € et $b = 1$ €, $E(G) = 1{,}50$ € : l'organisateur gagne en moyenne $0{,}50$ € par partie, et les grosses sommes du bord restent affichées.

À vous de jouer. Sur la planche ci-dessous, la mise est de $2$ €, et les sommes affichées sont celles du dernier exemple : $8$ € sur les bords, $1$ € à côté, rien au centre. Lâchez des billes et regardez votre solde évoluer.

var opt = {fontSize: 12, useKatex: false, useMathJax: false, parse: false, cssStyle: 'background:#fff;padding:0 3px;border-radius:3px'}; var gains = [8, 1, 0, 1, 8], mise = 2, n = 4, bille = null, file = 0, parties = 0, solde = 0, derniere = -1, k, r; var nb = [0, 0, 0, 0, 0]; var CX = [], CY = []; for (r = 0; r < n; r++) { for (k = 0; k <= r; k++) { var x = 2 - r/2 + k, y = 4.4 - 0.95*r; CX.push(x - 0.06, x + 0.06, NaN); CY.push(y, y, NaN); } } board.create('curve', [CX, CY], {strokeColor: '#37474f', strokeWidth: 7, lineCap: 'butt', highlight: false}); for (k = 0; k <= 5; k++) { board.create('segment', [[k - 0.5, -1.0], [k - 0.5, 0.9]], {strokeColor: '#8d6e63', strokeWidth: 2, fixed: true, highlight: false}); } board.create('segment', [[-0.5, -1.0], [4.5, -1.0]], {strokeColor: '#8d6e63', strokeWidth: 2, fixed: true, highlight: false}); var fond = board.create('curve', [[0], [0]], {strokeWidth: 0, fillColor: '#ffe082', fillOpacity: 0.9}); fond.updateDataArray = function () { if (derniere < 0 || bille) { this.dataX = []; this.dataY = []; return; } var a = derniere - 0.5; this.dataX = [a, a + 1, a + 1, a, a]; this.dataY = [-1, -1, 0.9, 0.9, -1]; }; for (k = 0; k <= 4; k++) { board.create('text', [k - 0.3, -0.55, gains[k] + ' €'], Object.assign({}, opt, {cssStyle: 'font-weight:bold;color:' + (gains[k] > mise ? '#c62828' : '#37474f')})); } var b = board.create('point', [function () { return bille ? bille.x() : -9; }, function () { return bille ? bille.y() : -9; }], {name: '', size: 6, color: '#ef6c00', fixed: true, visible: function () { return bille !== null; }}); function lacher() { var d = [0]; for (var q = 0; q < n; q++) { d.push(d[q] + (Math.random() < 0.5 ? 1 : 0)); } var t = 0; bille = {d: d, t: 0, x: function () { var r0 = Math.min(n, Math.floor(this.t)), f = Math.min(1, this.t - r0), x0 = 2 - r0/2 + this.d[r0], x1 = r0 < n ? 2 - (r0 + 1)/2 + this.d[r0 + 1] : x0; return x0 + (x1 - x0)*f; }, y: function () { return this.t <= n ? 5.0 - 0.95*this.t : 5.0 - 0.95*n - 1.6*(this.t - n); }}; } board.create('text', [-0.65, 6.0, function () { if (parties === 0) { return 'Mise : 2 € par bille. Bonne chance !'; } var g = gains[derniere]; return 'Partie ' + parties + ' : vous gagnez ' + g + ' € (' + (g - mise >= 0 ? '+' : '−') + Math.abs(g - mise) + ' €)'; }], opt); board.create('text', [-0.65, -1.45, function () { return 'Solde après ' + parties + ' partie' + (parties > 1 ? 's' : '') + ' : ' + (solde >= 0 ? '+' : '−') + Math.abs(solde) + ' €'; }], Object.assign({}, opt, {fontSize: 13})); board.create('text', [-0.65, -1.9, function () { return parties ? 'Gain moyen par partie : ' + (solde/parties).toFixed(2).replace('.', ',').replace('-', '−') + ' €' : 'Gain moyen espéré : −0,50 € par partie'; }], opt); board.create('text', [-0.65, -2.3, function () { return parties ? 'Cases : ' + nb.join(' / ') : ''; }], Object.assign({}, opt, {fontSize: 11})); board.create('button', [-0.6, -2.75, 'Lâcher une bille', function () { if (!bille) { lacher(); } else { file++; } }], {fontSize: 11, useKatex: false, useMathJax: false, parse: false}); board.create('button', [1.75, -2.75, '10 billes', function () { if (!bille) { lacher(); file += 9; } else { file += 10; } }], {fontSize: 11, useKatex: false, useMathJax: false, parse: false}); board.create('button', [3.15, -2.75, 'Zéro', function () { file = 0; bille = null; parties = 0; solde = 0; derniere = -1; nb = [0, 0, 0, 0, 0]; board.update(); }], {fontSize: 11, useKatex: false, useMathJax: false, parse: false}); setInterval(function () { if (!bille) { return; } bille.t += file > 0 ? 0.35 : 0.18; if (bille.t >= n + 0.9) { derniere = bille.d[n]; nb[derniere]++; parties++; solde += gains[derniere] - mise; bille = null; if (file > 0) { file--; lacher(); } } board.update(); }, 40); board.update(); Le jeu du fakir, jouable. Chaque bille coûte $2$ € ; la case où elle tombe indique ce que l'on récupère. Sur quelques parties, on peut gagner ; sur un grand nombre de parties, il est très probable que le gain moyen soit proche de $-0{,}50$ € par partie.

Que veut dire « en moyenne » ? Une partie isolée peut rapporter $8$ € au joueur. L'espérance n'est pas ce qui se passe à chaque partie : c'est, grâce à la loi des grands nombres appliquée à la moyenne des gains, la valeur dont la moyenne des gains sur un grand nombre de parties a une forte probabilité d'être proche. Sur une journée de $1\,000$ parties, le gain moyen de l'organisateur sera très probablement proche de $0{,}50$ € par partie, soit environ $500$ € : pour lui, le résultat est très prévisible, alors que pour chaque joueur c'est une loterie. C'est le principe de tous les jeux d'argent, et de l'assurance.

var opt = {fontSize: 11, useKatex: false, useMathJax: false, parse: false, cssStyle: 'background:#fff;padding:0 3px;border-radius:3px'}; var sa = board.create('slider', [[150, -1.75], [900, -1.75], [0, 8, 20]], {snapWidth: 1, withLabel: false}); var sb = board.create('slider', [[150, -2.1], [900, -2.1], [0, 1, 6]], {snapWidth: 1, withLabel: false}); var sm = board.create('slider', [[1380, -1.75], [1980, -1.75], [1, 2, 5]], {snapWidth: 0.5, withLabel: false}); board.create('text', [-110, -1.75, function () { return 'a = ' + Math.round(sa.Value()); }], opt); board.create('text', [-110, -2.1, function () { return 'b = ' + Math.round(sb.Value()); }], opt); board.create('text', [1050, -1.75, function () { return 'mise ' + sm.Value().toFixed(1).replace('.', ','); }], opt); board.create('segment', [[0, 0], [2000, 0]], {strokeColor: '#546e7a', strokeWidth: 1, fixed: true, highlight: false}); [-1, 1].forEach(function (y) { board.create('text', [-110, y, String(y)], Object.assign({}, opt, {cssStyle: ''})); }); var esp = function () { return sm.Value() - (2*Math.round(sa.Value()) + 8*Math.round(sb.Value()))/16; }; board.create('functiongraph', [function () { return esp(); }, 0, 2000], {strokeColor: '#c62828', strokeWidth: 2, dash: 2}); var cle = '', moy = []; function tirage() { var k = 0; for (var i = 0; i < 4; i++) { if (Math.random() < 0.5) { k++; } } return k; } var courbe = board.create('curve', [[0], [0]], {strokeColor: '#1565c0', strokeWidth: 1.6}); courbe.updateDataArray = function () { var a = Math.round(sa.Value()), b = Math.round(sb.Value()), m = sm.Value(), c = a + ',' + b + ',' + m; if (c !== cle) { cle = c; moy = []; var s = 0; for (var j = 1; j <= 2000; j++) { var k = tirage(), g = (k === 0 || k === 4) ? a : ((k === 1 || k === 3) ? b : 0); s += m - g; moy.push(s/j); } } var X = [], Y = []; for (var j2 = 0; j2 < 2000; j2 += 2) { X.push(j2 + 1); Y.push(Math.max(-1.4, Math.min(1.9, moy[j2]))); } this.dataX = X; this.dataY = Y; }; board.create('text', [-110, 2.2, function () { var e = esp(); return 'espérance du gain de l\'organisateur : ' + e.toFixed(2).replace('.', ',') + ' €'; }], opt); board.create('text', [1500, 0.25, '2 000 parties'], Object.assign({}, opt, {cssStyle: ''})); board.create('button', [1500, 1.6, 'Rejouer', function () { cle = ''; board.update(); }], {fontSize: 11, useKatex: false, useMathJax: false, parse: false}); board.update(); Gain moyen de l'organisateur (en bleu) au fil de $2\,000$ parties simulées, et sa valeur espérée (en rouge). Les curseurs règlent la somme $a$ des bords, la somme $b$ des cases intermédiaires (la case centrale ne rapporte rien) et la mise. Au début, la moyenne varie beaucoup ; ensuite, elle reste le plus souvent près de l'espérance, sans jamais y être obligée.
Francis Galton, l'hérédité et la régression vers la moyenne

Un savant touche-à-tout. Francis Galton (1822-1911) est le demi-cousin de Charles Darwin : ils ont le même grand-père, le médecin et naturaliste Erasmus Darwin. Riche héritier, il étudie la médecine puis les mathématiques à Cambridge, explore l'actuelle Namibie au début des années 1850, publie un guide de voyage à succès, invente le mot anticyclone et fait paraître en 1875, dans le Times, l'une des premières cartes météorologiques publiées dans un journal. Il a la passion de mesurer : en 1884, son laboratoire d'anthropométrie mesure près de $10\,000$ visiteurs d'une exposition à Londres.

Photographie de Francis Galton âgé, de profil, aux favoris blancs. Francis Galton vers 1890. Photo : Graham's Art Studios, Wikimedia Commons, domaine public.

L'hérédité. La lecture de L'Origine des espèces de Darwin (1859) l'oriente vers une question : comment les caractères se transmettent-ils des parents aux enfants ? À l'époque, on ne connaît ni les gènes ni l'ADN ; les travaux de Gregor Mendel (1865) sur les pois sont passés inaperçus, et ne seront redécouverts qu'en 1900. Galton choisit une autre voie : mesurer des milliers d'individus et étudier les mesures avec des outils statistiques. En 1875, il distribue à des amis des graines de pois de senteur classées par taille et compare la taille des graines des plantes filles à celle des graines mères. En 1886, il étudie la taille de $928$ enfants adultes de $205$ familles.

La régression vers la moyenne. Galton constate que les enfants de parents très grands sont en moyenne grands, mais moins que leurs parents ; les enfants de parents très petits sont en moyenne petits, mais moins que leurs parents. Il appelle ce phénomène la régression vers la moyenne : l'écart à la moyenne de la population est, chez les enfants, à peu près les deux tiers de celui des parents. Ce n'est pas que la population s'uniformise : d'une génération à l'autre, la variété des tailles reste la même, car d'autres enfants s'écartent à leur tour de la moyenne. Pour étudier ce lien, Galton invente en 1888 la notion de corrélation ; son disciple Karl Pearson en fera le coefficient de corrélation, et la droite de régression est restée dans tous les cours de statistique.

var opt = {fontSize: 11, useKatex: false, useMathJax: false, parse: false, cssStyle: 'background:#fff;padding:0 3px;border-radius:3px'}; var g = 20261013; function u() { g = (g*16807) % 2147483647; return g/2147483647; } function nor() { return Math.sqrt(-2*Math.log(u()))*Math.cos(2*Math.PI*u()); } [160, 170, 180, 190].forEach(function (v) { board.create('segment', [[v, 156], [v, 192]], {strokeColor: '#eceff1', strokeWidth: 1, fixed: true, highlight: false}); board.create('segment', [[156, v], [192, v]], {strokeColor: '#eceff1', strokeWidth: 1, fixed: true, highlight: false}); board.create('text', [v - 1.6, 155.6, String(v)], Object.assign({}, opt, {cssStyle: '', fontSize: 10})); board.create('text', [154.3, v, String(v)], Object.assign({}, opt, {cssStyle: '', fontSize: 10})); }); var X = [], Y = [], m = 174; for (var i = 0; i < 400; i++) { var p = m + 4.5*nor(), e = m + (2/3)*(p - m) + 4.2*nor(); X.push(p - 0.25, p + 0.25, NaN); Y.push(e, e, NaN); } board.create('curve', [X, Y], {strokeColor: '#1e88e5', strokeWidth: 3.5, lineCap: 'butt', highlight: false}); board.create('segment', [[156, 156], [192, 192]], {strokeColor: '#78909c', strokeWidth: 1.5, dash: 2, fixed: true, highlight: false}); board.create('segment', [[156, m + (2/3)*(156 - m)], [192, m + (2/3)*(192 - m)]], {strokeColor: '#c62828', strokeWidth: 2.5, fixed: true, highlight: false}); board.create('text', [157, 191, 'taille de l\'enfant (cm)'], opt); board.create('text', [172, 158.5, 'taille moyenne des parents (cm)'], opt); board.create('text', [184, 188, 'y = x'], Object.assign({}, opt, {cssStyle: 'background:#fff;color:#607d8b'})); board.create('text', [183, 178.6, 'pente 2/3'], Object.assign({}, opt, {cssStyle: 'background:#fff;color:#c62828'})); Données simulées dans l'esprit de l'étude de Galton : chaque point est une famille. La droite rouge, de pente $\dfrac{2}{3}$, est moins pentue que la droite $y = x$ (en pointillés) : les enfants de parents extrêmes sont en moyenne moins extrêmes que leurs parents.

Un piège du raisonnement. La régression vers la moyenne apparaît partout où une mesure mêle une part stable et une part de hasard, et elle fait commettre de nombreuses erreurs. Le psychologue Daniel Kahneman raconte que des instructeurs de l'armée de l'air israélienne étaient persuadés que féliciter un pilote après un excellent vol le faisait moins bien voler la fois suivante, et que le réprimander après un mauvais vol l'améliorait. Ils voyaient l'effet de leurs paroles là où il n'y avait que de la régression : un vol exceptionnel est en partie dû à la chance, et le suivant est en général plus ordinaire, quoi qu'on dise. Le même effet fait croire qu'un traitement a marché quand on l'a commencé au plus fort d'une maladie, ou qu'un sportif « s'effondre » après une saison record. C'est pourquoi les essais cliniques comparent toujours un groupe traité à un groupe témoin.

Jumeaux et empreintes. En 1874, Galton forge l'expression nature and nurture, « l'inné et l'acquis », et propose dès 1875 d'étudier les jumeaux pour séparer les deux : c'est l'origine des études de jumeaux encore utilisées en génétique. En 1892, dans Finger Prints, il montre que les empreintes digitales ne changent pas au cours de la vie et qu'elles sont propres à chaque individu, et il propose une classification. La police britannique adopte l'identification par les empreintes en 1901.

Mendel et Galton réconciliés. Au début du XXe siècle, deux écoles s'opposent violemment. Les « mendéliens » expliquent l'hérédité par des facteurs distincts (nos gènes), qui produisent des caractères tranchés, comme les pois lisses ou ridés de Mendel. Les « biométriciens », héritiers de Galton, étudient des caractères qui varient continûment, comme la taille, et distribués selon une courbe en cloche. En 1918, le statisticien Ronald Fisher montre que les deux points de vue sont compatibles : un caractère qui dépend de très nombreux gènes, chacun ayant un petit effet, auquel s'ajoutent les effets du milieu, se distribue selon une loi presque normale. La planche de Galton en donne l'image exacte : chaque clou est un gène qui ajoute ou retire un peu, et la case finale est la taille. C'est le modèle des caractères polygéniques enseigné aujourd'hui. Le milieu compte aussi : la taille moyenne des adultes a augmenté de plusieurs centimètres en un siècle dans les pays européens, bien trop vite pour que les gènes aient changé, grâce à l'alimentation et à la santé.

De la statistique à l'eugénisme : un regard critique

En 1869, dans Hereditary Genius, Galton étudie les familles d'hommes célèbres (juges, savants, hommes politiques) et conclut que le talent est héréditaire. En 1883, il invente le mot eugénisme (du grec « bien né ») : il propose d'améliorer l'espèce humaine en encourageant la reproduction des personnes jugées les plus douées et en décourageant celle des autres. Il fonde une chaire d'eugénique à l'université de Londres, que Karl Pearson occupera.

Les conséquences. L'eugénisme connaît un succès considérable dans la première moitié du XXe siècle, à gauche comme à droite, dans de nombreux pays. Aux États-Unis, l'Indiana adopte en 1907 la première loi de stérilisation forcée ; en 1927, la Cour suprême la juge conforme à la Constitution (arrêt Buck v. Bell), et environ $60\,000$ Américains seront stérilisés de force au cours du siècle. La Suède stérilise plus de $60\,000$ personnes entre 1935 et 1975. En France, le prix Nobel de médecine Alexis Carrel défend des thèses eugénistes dans un livre à succès de 1935. L'Allemagne nazie pousse la logique jusqu'au bout : une loi de 1933 conduit à environ $400\,000$ stérilisations forcées, puis, à partir de 1939, l'opération « T4 » assassine plus de $70\,000$ personnes handicapées ou malades mentales, avant que les méthodes mises au point ne servent au génocide des Juifs d'Europe.

Des erreurs scientifiques. L'eugénisme ne repose pas seulement sur des choix moraux inacceptables ; il repose aussi sur des erreurs que la science a montrées.

Aujourd'hui. En France, l'article 16-4 du Code civil, issu des lois de bioéthique de 1994, interdit « toute pratique eugénique tendant à l'organisation de la sélection des personnes ». En 2020, l'University College de Londres a retiré les noms de Galton et de Pearson de ses bâtiments. Les questions restent vives avec le diagnostic prénatal et les techniques de modification du génome : où passe la limite entre soigner et sélectionner ? L'histoire de Galton montre qu'un grand scientifique peut faire des découvertes durables et défendre en même temps une doctrine fausse et dangereuse, et que les outils mathématiques ne disent rien, à eux seuls, de l'usage qu'on en fait.

Des directions pour construire sa question

Ce texte n'est pas un Grand Oral. Il rassemble des connaissances dans lesquelles chacun peut choisir une direction, la creuser et formuler sa propre question. Quelques directions possibles :

Pour l'échange avec le jury : les notions du cours à maîtriser

Le jury peut interroger sur les chapitres de spécialité mobilisés. Avec ce thème, il est utile de connaître parfaitement : le dénombrement et les coefficients binomiaux ; le schéma de Bernoulli et la loi binomiale, son espérance et sa variance ; l'espérance et la variance d'une variable aléatoire, et leurs propriétés pour une somme ; l'inégalité de Bienaymé-Tchebychev, l'inégalité de concentration et la loi faible des grands nombres ; les limites de suites.

Pour réviser ces chapitres, l'application Maths FlashBac reprend tout le cours de spécialité en cartes.

Pour aller plus loin