Supposons que vous observiez la séquence:
7, 9, 0, 5, 5, 5, 4, 8, 0, 6, 9, 5, 3, 8, 7, 8, 5, 4, 0, 0, 6, 6, 4, 5, 3, 3, 7, 5, 9, 8, 1, 8, 6, 2, 8, 4, 6, 4, 1, 9, 9, 0, 5, 2, 0, 4, 5, 2, 8. ..
Quels tests statistiques appliqueriez-vous pour déterminer si cela est vraiment aléatoire? Pour info, ce sont les ième chiffres de . Ainsi, les chiffres de statistiquement aléatoires? Est-ce que cela dit quelque chose à propos de la constante ?π π π
random-generation
randomness
Cam.Davidson.Pilon
la source
la source
Réponses:
Le US National Institute of Standard a mis au point une batterie de tests auxquels un générateur de nombres (pseudo-) aléatoires doit réussir pour être considéré comme adéquat, voir http://csrc.nist.gov/groups/ST/toolkit/rng/stats_tests. html . Il existe également des tests connus sous le nom de suite de tests Diehard , qui se chevauchent quelque peu avec les tests NIST. Les développeurs de progiciels statistiques Stata rapportent leurs résultats Diehard dans le cadre de leur processus de certification. J'imagine que vous pouvez prendre des blocs de chiffres deπ , par exemple, par groupes de 15 chiffres consécutifs, pour qu'ils soient comparables à la précision de type double , et exécuter ces batteries de tests sur les nombres ainsi obtenus.
la source
Répondez à la première de vos questions: "Quels tests appliqueriez-vous pour déterminer si cette [séquence] est vraiment aléatoire?"
Pourquoi ne pas le traiter comme une série temporelle et vérifier les corrélations automatiques? Voici du code R. Quelques données de test (1000 premiers chiffres):
Vérifiez les comptes de chaque chiffre:
Puis convertissez-le en une série chronologique et exécutez le test Box-Pierce:
qui me dit:
En règle générale, vous voudriez que la valeur p soit inférieure à 0,05 pour indiquer qu'il existe des corrélations automatiques.
Exécuter
acf(d)
pour voir les corrélations automatiques. Je n'ai pas inclus d'image ici car il s'agit d'un tableau plat, bien qu'il soit curieux que les plus grands décalages se situent à 11 et 22 ans. Exécuteracf(d,lag.max=40)
pour montrer qu'il n'y a pas de pic à décalage = 33, et que c'était juste une coïncidence!PS Nous pourrions comparer l’efficacité de ces 1000 chiffres de pi en effectuant les mêmes tests sur des nombres aléatoires réels.
Cela génère 1000 chiffres aléatoires, effectue le test et le répète 100 fois.
Donc, notre résultat était confortablement dans le premier écart-type, et pi charlatans comme un canard aléatoire. (J'ai utilisé
set.seed(1)
si vous voulez reproduire ces chiffres exacts.)la source
C'est une question étrange. Les chiffres ne sont pas aléatoires.
la source