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.
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.
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.
Le premier est le résultat de la première expérience.
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.
Lorsque j'ai recommencé à expérimenter, il n'y avait que 1 cas sur 10 000 où le tableau était moins de 19600 fois.
Je pense que vous pouvez en quelque sorte le lire à partir du graphique.
C'est le résultat de la troisième expérience.
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.
C'est le résultat de la 4e expérience.
Après tout, il n'a pas dépassé 20 400 fois.
Comme test de suivi, j'ai recommencé la même expérience un autre jour.
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.
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) |
** 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}
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.
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.