La loi des grands nombres

Initiation à la loi des grands nombres

Cette page présente une notion importante en théorie des probabilités, la loi des grands nombres. Précisons : si cette introduction permettra aux élèves de seconde de mieux comprendre cette notion, elle ne vous apprendra pas grand-chose si vous êtes étudiant en statistiques. Dans ce cas, il est préférable d’ouvrir la page sur la loi faible des grands nombres, davantage adaptée à votre niveau d’études.

 

Un peu d’histoire

L’histoire des probabilités est courte si on la compare, par exemple, à celle de la géométrie. On admet qu’elle commence au dix-septième siècle avec les Français Fermat et Pascal qui s’intéressèrent aux jeux de paris. On peut toutefois évoquer une « préhistoire » des probabilités lors de la Renaissance italienne, avec des auteurs comme Pacioli puis Cardano (Cardan). Ce dernier utilisait implicitement la loi des grands nombres, qui ne fut énoncée que 150 ans plus tard par le Suisse Jacques (ou Jakob) Bernoulli sous l’expression « théorème d’or ».

Soit une probabilité théorique connue d’un évènement. Par exemple, la probabilité d’obtenir un 6 lors d’un lancer de dé est de \(\frac{1}{6}.\) Selon Bernoulli, si la probabilité théorique d’un évènement est connue, alors la fréquence de cet évènement s’en rapproche au fur et à mesure que le nombre d’observations augmente (l’intervalle de fluctuation diminue). Pour être plus précis, il montra que la probabilité que la fréquence totale s’écarte de la proportion théorique tend vers zéro. Ce théorème fut travaillé par des générations de mathématiciens et c’est Siméon Denis Poisson qui lui donna son nom de « loi des grands nombres » en 1837.

 

Formulation

Soit une expérience aléatoire à deux issues (épreuve de Bernoulli), que l’on appellera « succès » et « échec » (bien que dans la réalité, on ne raisonne pas forcément en ces termes !). On répète cette expérience \(n\) fois de façon identique et indépendante (schéma de Bernoulli). Soit \(f_n\) la fréquence de succès observée sur l’échantillon de taille \(n.\) Si \(n\) est grand, alors \(f_n\) se rapproche de la probabilité théorique d’obtenir un succès.

Pour dire les choses de façon simpliste, plus l’échantillon est grand, plus la fréquence observée est proche de la probabilité de succès.

C’est d’ailleurs intuitif pour tout le monde. Si l’on tire quatre fois à pile ou face et que l’on n’obtient que des piles, on n’en conclut pas pour autant que la pièce est truquée. Si on la lance cent fois et que l’on obtient encore que des piles… là on a un gros doute !

 

Exemple sur tableur

Excel possède une fonction ALEA qui permet d’afficher un nombre aléatoire entre 0 et 1. Si l’on arrondit ce nombre à l’unité, alors il est égal soit à 0 (s’il est compris entre 0,49999…) soit à 1 (compris entre 0,5 et 1). Il faut donc entrer la formule =ARRONDI(ALEA();0).

C’est le principe du pile ou face. Si l'on tire beaucoup de 0 et de 1 de façon aléatoire, la fréquence totale sera proche de 0,5, c’est-à-dire de la probabilité théorique d’obtenir pile (ou face, ou un succès).

Ci-dessous, vous pouvez voir un extrait de l'expérience pour \(n = 50.\) La fréquence totale est obtenue par le cumul des 0 et 1 tirés aléatoirement, divisé par le nombre de tirages (première colonne).

nombres aléatoires

Le graphique des fréquences totales au fur et à mesure des tirages :

représentation graphique

Il apparaît que cette fréquence se stabilise effectivement aux alentours de 0,5.

Sur Excel, il suffit d’un rien pour que tous ces nombres aléatoires soient recalculés. Par exemple en sauvegardant le fichier, le graphique change complètement :

autre représentation graphique

Ici, on se stabilise plutôt au-dessus mais, avec seulement 50 tirages, il ne faut pas s’étonner d’une telle imprécision.

Ci-dessous, un essai avec 500 tirages (500 lignes d'une feuille Excel) :

avec n = 500

 

Python

L'instruction qui permet de tirer un nombre aléatoirement en langage Python est randint. Elle se trouve dans la librairie random. Donc, soit on importe intégralement ce module (ci-dessous avec l'astérisque ou en page de tirages aléatoires avec Python), soit on importe juste randint.

Le programme ci-dessous permet de choisir un nombre \(n\) de tirages. La fonction consiste à générer des 0 et des 1 aléatoirement et à faire leur somme, puis à diviser cette dernière par \(n\). On obtient donc une moyenne qui est la fréquence observée totale, à comparer avec une proportion théorique de 0,5.

from random import *

def freq(n):
    nbr = 0
    for k in range(1,n+1):
        alea = randint(0,1)
        if alea == 1:
            nbr = nbr + 1
        return nbr / n

nombre=int(input("nombre de tirages : "))
print(freq(nombre))

Bien sûr, si vous faites tourner le même programme plusieurs fois pour une même valeur de \(n,\) vous risquez fort d'obtenir autant de résultats différents. L'intérêt est de commencer avec des valeurs de \(n\) assez petites, soit quelques dizaines, puis de plus en plus grandes, soit plusieurs milliers ou davantage. Plus \(n\) est grand, plus vous devez vous rapprocher de 0,5.