[PYTHON] Théorie de la prophétie et sa simulation (2)

Hier a expliqué le "théorème de la majorité" et le "théorème de limitation du pôle central" qui sont des théorèmes de probabilité importants lorsqu'il s'agit de données de grande taille. ..

Aujourd'hui, utilisons un ordinateur pour simuler la distribution d'un grand nombre d'essais stochastiques.

Génération de nombres pseudo aléatoires

Vous ne pouvez pas créer de vrais nombres aléatoires avec un ordinateur. Par conséquent, nous utilisons des nombres pseudo aléatoires. (De plus, il semble que les nombres pseudo-aléatoires soient officiellement "pseudo" sans biais.) Les nombres aléatoires sont très profonds, et il n'y a pas de fin à les poursuivre.

Ici, nous utiliserons numpy.random.randint qui est associé à NumPy. Il renvoie un entier d'une distribution uniformément discrète.

Dispersez les résultats de 40000 tirages au sort

J'ai expliqué hier que si vous appliquez la qualification du pôle central, 40 000 tirages au sort n'apparaîtront pas 20 400 fois. Bien qu'il ait été prouvé par le théorème, il peut être difficile pour un ingénieur de le comprendre sans l'exécuter réellement sur un ordinateur.

Nous allons donc simuler en utilisant le code suivant.

def coin_toss(lim):
    """Simuler un tirage au sort"""
    #Stocke 1 si l'avant apparaît et 0 si l'arrière apparaît
    _randomized = np.random.randint(2, size=lim)
    #Agréger le nombre total de fois où le tableau apparaît
    _succeed = [i for i in _randomized if i == 1]
    #Renvoie le résultat de l'agrégation
    return len(_succeed)

X = []
Y = []
lim = 10000

# 40,000 tirage au sort 10,Faire 000 fois
for i in range(lim):
    X.append(i)
    Y.append(coin_toss(lim = 40000))

print (X)
print (Y)
_over_lim = [i for i in Y if i >= 20400]
# 20,Nombre de fois supérieur à 400
print( len(_over_lim) )
_under_lim = [i for i in Y if i <= 19600]
# 19,Nombre de fois 600 ou moins
print( len(_under_lim) )

Cela signifie 400 millions de lancers de pièces en une seule expérience.

Résultats de la première expérience

Le premier est le résultat de la première expérience.

image2.png

Si vous pensez simplement avec 40 000 tirages au sort, vous devriez obtenir un tableau de 20 000 fois, mais c'est un graphique qui se répète 10 000 fois.

C'est presque centré. Cette fois, le nombre d'apparitions du tableau n'était ni supérieur à 20 400 ni inférieur à 19 600.

Résultats de la deuxième expérience

Lorsque j'ai recommencé à expérimenter, il n'y avait que 1 cas sur 10 000 où le tableau était moins de 19600 fois.

image3.png

Je pense que vous pouvez en quelque sorte le lire à partir du graphique.

Résultats de la troisième expérience

C'est le résultat de la troisième expérience.

image4.png

Il n'y a eu qu'un seul cas où le nombre de fois où le tableau était à peine affiché ne dépassait pas 20 400. De plus, il n'y a eu qu'un seul cas qui était moins de 19 600 fois.

Résultats de la 4e expérience

C'est le résultat de la 4e expérience.

image5.png

Après tout, il n'a pas dépassé 20 400 fois.

Résultats de la 5e expérience

Comme test de suivi, j'ai recommencé la même expérience un autre jour.

image.png

Il y a eu un cas où le tableau est apparu plus de 20 400 fois et un cas où le tableau est apparu moins de 19 600 fois.

Test d'hypothèse

Maintenant, examinons statistiquement si l'hypothèse selon laquelle 40 000 tirages au sort produisent 20 400 tables est correcte.

La manière de faire une hypothèse est la suivante.

hypothèse La description
Hypothèse nulle 40,20 avec 000 tirages au sort,400 fois le tableau apparaît
Hypothèse de conflit 40,20 avec 000 tirages au sort,Le tableau de 400 fois n'apparaît pas(20,000 fois le tableau apparaît)

Test du chi carré

** Le test du chi carré de Pearson ** est le test du chi carré (http://en.wikipedia.org/wiki/%E3%82%AB%E3%82%A4%E4) % BA% 8C% E4% B9% 97% E5% 88% 86% E5% B8% 83) est la méthode la plus basique et la plus largement utilisée. La formule ressemble à ceci:

X^2 = \sum\frac {(O-E)^2} {E}

Mise en œuvre du test du chi carré

Le test du chi carré est facile à implémenter en utilisant SciPy.

Tout d'abord, voyons si 400 tirages au sort vous donnera une table de 204 fois. Pour savoir, si l'hypothèse selon laquelle les résultats de 204 fronts et 196 backs sont de 400 tirages au sort est significative.

# -*- coding:utf-8 -*-

import numpy as np
import scipy.stats

s = 204 #Nombre de fois où le tableau apparaît
f = 196 #Nombre de fois où le dos sort
e = 200 #Nombre de fois prévu

#Hypothèse nulle(204:196)
observed = np.array([s,f])
#Hypothèse de conflit(200:200)
expected = np.array([e,e])

#Effectuer un test du chi carré
x2, p = scipy.stats.chisquare(observed, expected)

print("La valeur du chi carré est%(x2)s" %locals() )
print("La probabilité est%(p)s" %locals() )

#Niveau de signification statistique 0.Découvrez s'il est supérieur à 05
if p > 0.05:
    print("Important")
else:
    print("Insignifiant")

Le résultat est comme ça. 0,68 est supérieur à 0,05, donc c'est significatif. On peut dire que cela peut arriver assez.

La valeur du chi carré est 0.16
La probabilité est 0.689156516779
Important

Regardons cela comme 2040 fois à l'avant et 1 960 fois à l'arrière.

La valeur du chi carré est 1.6
La probabilité est 0.205903210732
Important

On dirait que c'est toujours important. Cela peut arriver assez.

Alors qu'en est-il de 20 400 fois à l'avant et de 19 600 fois à l'arrière?

La valeur du chi carré est 16.0
La probabilité est de 6.33424836662e-05
Insignifiant

Ce n'était qu'une valeur très faible (notez les nombres à virgule flottante). On peut dire que cela est peu probable.

Et si vous essayez 40 000 tirages au sort et obtenez une table 20 100 fois?

La valeur du chi carré est 1.0
La probabilité est 0.317310507863
Important

C'est important. Il s'est avéré qu'il est tout à fait possible que le tableau apparaisse s'il est environ 20 100 fois.

Considération

En utilisant un ordinateur, vous pouvez effectuer un grand nombre de calculs, les simuler et visualiser les résultats. Il a également été constaté que le test d'hypothèse peut tester si la fréquence relative des événements observés suit une certaine distribution de fréquence.

Recommended Posts

Théorie de la prophétie et sa simulation (2)
Développement et simulation des perturbations Méthode des perturbations
Normalisation de la théorie et de la mise en œuvre des flux
Théorie et implémentation simples des réseaux neuronaux
Recherche de 2 minutes Python et ses dérivés