Run test

Ce test est basé sur le nombre de séquences croissantes et décroissantes. En effet, on perçoit bien intuitivement qu'une suite strictement croissante du genre 1, 5, 89, 112, 145, 167, 245, ... n'est pas une suite aléatoire.

Soit R = le nombre de séquences dans l'échantillon de n nombres. Théoriquement, la moyenne et la variance sont:

E(R) = (2n-1) / 3 Var(R) = (16n-29) / 90

et pour n élevé (grand échantillon), la répartition de R suit approximativement une loi normale.
Soit . En fixant un seuil de tolérance de 5%, |Z| > 1.96 indique que l'échantillon n'est "pas vraiment aléatoire".

Exemple
Prenons une suite de n=15 nombres obtenus par un générateur aléatoire produisant des nombres entiers entre 0 et 99:

12 14 65 18 33 77 89 72 76 43 70 81 94 98 3
+ + - + + + - + - + + + + -

Il y a R=8 séquences: 4 croissantes (en vert) et 4 décroissantes (en rouge).

Théoriquement, on devrait avoir E(R) = (2·15-1)/3 = 29/3 = 9.66 et Var(R) = (16·15-29)/90 = 2.34.

Comme |z| < 1.96, le test est réussi.

Remarquons au passage qui si le générateur aléatoire produisait des nombres entiers entre 0 et n, avec n>99, le résultat aurait été le même, alors que manifestement la suite n'aurait pas été aléatoire (imaginez n=9999)! Ce test ne suffit donc pas à dire qu'une suite est aléatoire.


Exercice

  • Programmez en Mathematica le run test .
  • Testez avec le run test les générateurs à congruence linéraire que vous avez déjà programmés.
  • Ecrivez en Mathematica un programme qui imite l'applet ci-dessous:
    Soit xi le i-ème nombre d'une suite aléatoire. Si xi > xi-1, on monte d'un cran. Si xi < xi-1, on descend d'un cran.

Fonctions Mathematica utiles: Abs, AppendTo, For, If, Length, ListPlot, Print, Sign, Sqrt.

Applet

Cette applet simule le lancer d'une pièce de monnaie. Un compteur est incrémenté de 1 si la pièce indique face et décrémenté de 1 si elle indique pile. Le graphique ci-dessous indique l'état du compteur en fonction du nombre de lancers.

Entrez le nombre de pièces à jeter (No. of coin tosses en anglais), puis lancez la simulation en pressant le bouton Simulate. Evitez de dépasser 100'000 jets.

Written by Julian Devlin, 8/97, for the text book "Introduction to Probability," by Charles M. Grinstead & J. Laurie Snell.

Le fichier Mathematica complet est disponible, mais seulement pour les visiteurs autorisés!
Mot de passe :


Référence


Didier Müller, 5.1.03