Résumons-nous : pour "construire le hasard", il est courant d'employer des suites
récurrentes "chaotiques". De telles suites, phénomènes purement déterministes comme toute
suite récurrente, ont l'étrange propriété de ressembler terriblement à ce que l'on attend du
hasard. Cette similitude nous intéresse d'autant plus qu'elle n'est pas seulement d'ordre
graphique. Il est par exemple courant de se demander que la variable aléatoire qui à un
nombre obtenu par cette suite associe le chiffre d'un rang donné dans ce nombre suit bien une
loi uniforme. On pourrait tout aussi bien vouloir construire une suite qui permettrait
d'avoir une loi binomiale, une loi de Poisson, ou une loi normale.
Dans tous les cas, nous construisons des générateurs de nombres aléatoires ou plutôt
pseudo-aléatoires, qu'il est important de tester, pour savoir s'ils sont conformes à notre
attente. Indépendamment des tests, nous avons vu dans l'article précédent qu'un grain de
sable pouvait surgir à l'insu de l'utilisateur : la cyclicité du générateur. Le problème
est d'importance : un test peut se révéler adapté si on l'effectue sur de petits
échantillons, et totalement inadapté si on le fait fonctionner sur un échantillon important :
nous avons vu que la suite proposée dans le magazine 3'33 était périodique avec une période
de 100000. Nous voici bien loin du hasard ! Il n'y a d'ailleurs dans le cadre des suites
chaotiques aucune solution évidente : votre calculatrice, ou le logiciel Excel utilisent des
nombres décimaux d'une longueur maximale donnée. Quel que soit celui dont on part, il
arrivera un moment où nous aurons épuisé tous les nombres possibles, et la suite étant
récurrente, totalement déterministe, un nouveau cycle démarrera. La question principale est
alors de construire des générateurs dont le cycle est le plus long possible. 100000 c'est
vraiment court !
Nous aborderons dans un prochain article les réponses qui sont le plus fréquemment apportées
à cette question. Pour le moment revenons aux tests.
La dernière fois nous avons examiné l'uniformité. Elle constitue souvent le minimum exigible.
De façon plus élaborée on peut tester des situations faisant appel à l'équiprobabilité mais
moins directement que dans la répartition uniforme. Le principe général en est le suivant :
retrouver des résultats théoriques connus (en tenant compte de l'imprécision produite
nécessairement par la fluctuation d'échantillonnage). Bien entendu dans un second temps, les
mêmes procédés pourront être utilisés pour mettre les élèves sur la voie de ces probabilités.
Un exemple simple est constitué par une situation de Bernoulli. Prenons un cas classique : un
questionnaire comprend 9 questions, comportant chacune trois réponses possibles, une seule
étant exacte. On répond au hasard. On sait que la variable aléatoire X qui donne le nombre
de réponses justes suit une loi binomiale de paramètres 9 et 1/3. Son espérance
mathématique vaut donc 3. 1000 candidats vont répondre aléatoirement au questionnaire. On se
propose de simuler cette situation et de "vérifier expérimentalement" que la moyenne des
réponses justes est proche de 3.
Les générateurs de nombres pseudo-aléatoires des calculatrices ou des tableurs retournent
habituellement des nombres compris entre 0 et 1. Il y a trois réponses possibles ; deux sont
fausses. On notera 0 la réponse juste et 1 une réponse fausse. Pour chaque question, il faut
obtenir une simulation (c'est-à-dire une variable aléatoire) qui retourne 0 ou 1 avec "deux
fois plus de 1 que de 0". Si x est un nombre compris entre 0 et 1,
partie_entière(3x)
est soit 0, soit 1, soit 2. Soit y l'un de ces trois
entiers, alors
partie_entière(y/2 + 0,5)
vaut 0 quand y vaut 0 et vaut 1 si y vaut 1 ou 2.
On compose tout cela et l'on prend x = alea() (nombre aléatoire).
On a comme instruction :
partie_entière(partie_entière(3*alea())/2+0,5)
Il ne reste plus qu'à "compter" le nombre de 0, ou plutôt qu'à apprendre au tableur à
compter. L'instruction "
NB.SI" permet de compter le nombre d'occurrences de
variable dans la plage :
plage(NB.SI(plage:variable))
Par exemple avec ces nouvelles données :
Il ne reste plus qu'à recopier cette première ligne jusqu'à la millième ligne
On peut alors calculer la moyenne de la colonne J.
Ce résultat paraît satisfaisant. Son utilisation pédagogique aussi ! L'espérance est proche
de 3 ce qui rend "facilement" identifiable à 1/3.
D'un point de vue plus théorique, on peut se demander si ce résultat est "suffisamment"
proche de 3. Le nombre de réponses justes à chaque questionnaire est une variable aléatoire
de moyenne 3 et de variance 2.
Le théorème de la limite centrée permet de dire alors que la
variable aléatoire qui à chaque échantillon de 1000 questionnaires associe le nombre moyen de
réponses justes par questionnaire suit une loi normale de moyenne 3 et d'écart-type
.
95% des échantillons de 1000 questionnaires auront donc un nombre moyen de réponses justes
compris entre
et
,
c'est-à-dire environ entre 2,91 et 3,09. Le résultat obtenu de
3,032 est conforme à cette attente. Le générateur de nombres pseudo-aléatoires d'Excel
"résiste" bien à ce test.
Mais on peut aller plus loin. Il est en effet très facile de déterminer combien chacune des
valeurs entre 0 et 9 apparaît dans la plage des 1000 résultats. On en déduit aisément la
fréquence de chacune d'elles.
Or nous connaissons (les élèves pas encore si l'on utilise l'activité comme découverte), les
résultats théoriques fournis par la loi binomiale. Voilà une bonne occasion d'utiliser un
test du Khi-deux. Ce test ne s'utilisant qu'avec des effectifs, nous ramenons les fréquences
et autres probabilités à des effectifs dont le somme vaut 1000.
La deuxième ligne correspond aux effectifs obtenus sur l'échantillon et la troisième aux
probabilités théoriques multipliées par 1000.
Autre problème : les deux dernières classes ont des effectifs théoriques trop petits
(inférieurs à 5). Leur poids relatif par rapport à l'ensemble étant faible, on appliquera le
test sur les 7 premières colonnes (c'est-à-dire sur un effectif total de 999).
On obtient alors comme résultat environ : 0,42. Dans 58% des cas on obtient des
échantillons "aussi bons voire meilleurs" c'est-à-dire plus conforme à une loi binomiale,
mais en tenant compte de la fluctuation d'échantillonnage, au seuil de confiance de 95%,
notre échantillon ne permet pas de rejeter l'hypothèse selon laquelle on peut ajuster la
distribution obtenu à chaque questionnaire par une loi binomiale.
En définitive, on obtient pour nos deux tests une "confirmation" indirecte de la valeur de
la distribution uniforme des nombres pseudo-aléatoires fournis par Excel.
Après la loi binomiale, la loi normale est assez simple à tester. Pour simuler une loi
normale, on utilise la méthode dite de Box-Muller : si X1 et X2
sont deux variables aléatoires uniformes sur ]0;1], alors la variable
suit une loi normale centrée réduite.
On suppose que le générateur d'Excel correspond bien à une loi uniforme sur ]0;1]. On place
par exemple 5000 nombres par la fonction alea() sur les colonnes A et B. Ces
deux colonnes correspondront aux variables X1 et X2.
On construit la variable Y sur la colonne C.
La plupart des valeurs de la colonne C sont comprises entre -3 et 3. Dans la colonne D on
fait apparaître les nombres de -3 à 3 écrites de 0,3 en 0,3 et deux valeurs extrêmes
très différentes (-10 et 10). La colonne E comptabilise le nombre de valeurs de la
colonne C inférieure à la cellule D correspondante (Par exemple ici, il y a 45 valeurs de C
inférieures à -2,4). Pour cela on utilise encore la fonction
"
NB.SI". En E1, on écrit la formule :
=
NB.SI(C$1:C$2000;<& D1).
Puis l'on recopie la formule jusqu'à D23. La colonne F contient le nombre de valeurs de C
comprises entre deux valeurs consécutives de D. Par exemple le 23 en F4 signifie qu'il y a 23
valeurs de C comprises entre -2,7(D3) et -2,4(D4). Si l'on appelle
Z une
variable aléatoire qui suit la loi normale centrée réduite, on écrit en colonne G la
probabilité p(Z<t) avec t=D1...D23 (=
LOI.NORMALE.STANDARD(D1)).
Puis en colonne H, les effectifs théoriques pour 5000 essais d'obtenir
Z entre
t
1 et t
2
avec t
1=D1...D22 et t
2=D2...D23.
Par exemple en H1, on trouve la formule : =5000*(G2-G1).
On applique alors le test du Khi-deux aux colonnes F et H. On trouve 0,43 environ. Là
encore, compte tenu de la fluctuation d'échantillonnage, on ne peut pas mettre en question
que la variable Y suit bien une loi normale centrée réduite. Et donc indirectement on doit
admettre que le générateur aléatoire d'Excel suit bien une loi uniforme. Ce dernier test est
un peu différent des précédents puisqu'il ne prend pas une décimale particulière, mais le
nombre pseudo-aléatoire dans son entier. Il existe d'autres tests qui s'intéressent à un
certain nombre de décimales particulières ou à l'écart entre deux décimales identiques...
Dans le prochain article, nous verrons comment "réagit" le nombre
face à ces différents
tests.
À suivre...