Tout d'abord, générons un nombre aléatoire uniforme et illustrons sa distribution.
#Importez une bibliothèque pour gérer les nombres aléatoires.
import random
sample_size = 10 #Nombre de nombres aléatoires générés
#Stocker des nombres aléatoires uniformes dans dist (distribution):Distribution)
dist = [random.random() for i in range(sample_size)]
#Vérifiez le contenu de dist.
dist
#Importez une bibliothèque pour illustrer des diagrammes et des graphiques.
import matplotlib.pyplot as plt
%matplotlib inline
#Dessinez un histogramme.
plt.hist(dist)
plt.grid()
plt.show()
Plus les nombres aléatoires sont générés, plus la forme de distribution «idéale» est proche.
sample_size = 100 #Nombre de nombres aléatoires générés
#Stocker des nombres aléatoires uniformes dans dist
dist = [random.random() for i in range(sample_size)]
#Dessinez un histogramme.
plt.hist(dist)
plt.grid()
plt.show()
sample_size = 1000 #Nombre de nombres aléatoires générés
#Stocker des nombres aléatoires uniformes dans dist
dist = [random.random() for i in range(sample_size)]
#Dessinez un histogramme.
plt.hist(dist)
plt.grid()
plt.show()
sample_size = 10000 #Nombre de nombres aléatoires générés
#Stocker des nombres aléatoires uniformes dans dist
dist = [random.random() for i in range(sample_size)]
#Dessinez un histogramme.
plt.hist(dist)
plt.grid()
plt.show()
sample_size = 100000 #Nombre de nombres aléatoires générés
#Stocker des nombres aléatoires uniformes dans dist
dist = [random.random() for i in range(sample_size)]
#Dessinez un histogramme.
plt.hist(dist)
plt.grid()
plt.show()
La boîte utilisée pour séparer la poubelle s'appelle bin. Lorsque vous dessinez un histogramme, l'affichage varie en fonction du nombre de bacs triés. Si vous augmentez le nombre de cases, vous pouvez voir la forme fine de la distribution, mais le nombre de données séparées par case diminue naturellement.
sample_size = 100000 #Nombre de nombres aléatoires générés
#Stocker des nombres aléatoires uniformes dans dist
dist = [random.random() for i in range(sample_size)]
#Dessinez un histogramme.
plt.hist(dist, bins=100) #Augmenter le bac
plt.grid()
plt.show()
__np.random.binomial (n, p) __ renvoie le nombre de cotes qui apparaissent lorsque vous jouez à la roulette n fois avec une probabilité de p qui produit un nombre impair (la probabilité 1-p produit un nombre pair). Une telle distribution est appelée distribution binomiale.
Jouez à 10 roulettes avec une probabilité égale de cotes et d'égales, et comptez le nombre de cotes. Répétez-le 10 000 fois. Quelle est la probabilité que les cotes et les égalités apparaissent le même nombre de fois (probabilité d'apparaître 5 fois chacune)?
#Importez la bibliothèque de calculs numériques.
import numpy as np
sample_size = 10000 #Nombre de nombres aléatoires générés
#Un nombre impair apparaît avec une probabilité p (probabilité 1)-Lorsque vous jouez à la roulette n fois (p donne un nombre pair)
#Distribution du nombre d'apparitions d'un nombre impair
dist = [np.random.binomial(n=10, p=0.5) for i in range(sample_size)]
#Dessinez un histogramme.
plt.hist(dist, bins=100)
plt.grid()
plt.show()
Comme vous pouvez le voir sur la figure ci-dessus, si vous jouez à une roulette avec une probabilité égale de pair et impair, la probabilité d'apparaître impair et pair le même nombre de fois (probabilité de 5 chacun) est d'environ 25% (environ 10000 fois). 2500 fois). Vous pouvez avoir l'impression qu'il est étonnamment petit.
Vous observiez d'autres invités jouant à la roulette au casino. Ensuite, comme le nombre de nombres impairs apparaissant est extrêmement élevé, j'ai senti que la roulette était un calmar. Si ce n'est pas fou, la roulette devrait avoir des cotes impaires et paires. Cependant, cette roulette a obtenu un nombre impair 60 fois sur 100. Est-ce un calmar à la roulette?
Lorsque vous jouez à une roulette avec une probabilité égale de pair et impair, quelle est la probabilité que le nombre de impair soit 60 ou plus? Tout d'abord, dessinons la distribution.
sample_size = 10000 #Nombre de nombres aléatoires générés
#Un nombre impair apparaît avec une probabilité p (probabilité 1)-Lorsque vous jouez à la roulette n fois (p donne un nombre pair)
#Distribution du nombre d'apparitions d'un nombre impair
dist = [np.random.binomial(n=100, p=0.5) for i in range(sample_size)]
#Dessinez un histogramme.
plt.hist(dist, bins=100)
plt.grid()
plt.show()
Avec le même calcul que ci-dessus, calculons "la probabilité de jouer à la roulette 100 fois et d'obtenir un nombre impair de 60 fois ou plus".
sample_size = 10000 #Nombre de nombres aléatoires générés
#Un nombre impair apparaît avec une probabilité p (probabilité 1)-Lorsque vous jouez à la roulette n fois (p donne un nombre pair)
#Distribution du nombre d'apparitions d'un nombre impair
dist = [np.random.binomial(n=100, p=0.5) for i in range(sample_size)]
p = sum([1 for n in dist if n >= 60]) / sample_size
print("valeur p: %(p)s " %locals())
Après avoir joué à 100 roulettes avec une probabilité égale de cotes et d'égaux, il a été constaté que la probabilité que les cotes apparaissent 60 fois ou plus «accidentellement» est inférieure à 5%. En d'autres termes, pour une roulette qui a un nombre impair de 60 ou plus sur 100 fois, il semble bon de soupçonner que la roulette est folle.
P à ce moment est appelé la valeur p (probabilité significative).
Pour une roulette qui a un nombre impair de 60 ou plus sur 100 fois, il semble bon de soupçonner que la roulette est folle. Ensuite, si un nombre impair apparaît 6 fois ou plus sur 10 fois, la probabilité d'apparition d'un nombre impair est la même 60% </ u>, mais pouvez-vous dire que la roulette est folle? Veuillez calculer la valeur p et la réponse.
#Défi 1
On estime que 5% de toutes les populations ont une infection. Si 20 personnes étaient sélectionnées au hasard parmi tous les habitants, combien de personnes seraient affectées dans la population extraite? Une telle distribution est également une distribution binomiale. Dessinons une distribution.
sample_size = 10000 #Nombre de nombres aléatoires générés
#Un nombre impair apparaît avec une probabilité p (probabilité 1)-Lorsque vous jouez à la roulette n fois (p donne un nombre pair)
#Distribution du nombre d'apparitions d'un nombre impair
dist = [np.random.binomial(n=20, p=0.05) for i in range(sample_size)]
#Dessinez un histogramme.
plt.hist(dist, bins=100)
plt.grid()
plt.show()
On estime que 5% de toutes les populations ont une infection. Lorsque 100 personnes ont été sélectionnées au hasard parmi tous les habitants, il y avait plus de 10 personnes touchées dans la population extraite.
(1) Estimez la probabilité que cela se produise par hasard.
(2) Comment interpréter le résultat?
#Défi 2
__random.normalvariate (mu, sigma) __ est une fonction qui génère des nombres aléatoires qui suivent une distribution normale (mu est la moyenne, sigma est l'écart type).
Une distribution normale avec une moyenne de 0 et un écart type de 1 est appelée «distribution normale standard». Dessinons une distribution normale standard.
sample_size = 10000 #Nombre de nombres aléatoires générés
dist = [random.normalvariate(mu=0, sigma=1) for i in range(sample_size)]
#Dessinez un histogramme.
plt.hist(dist, bins=100)
plt.grid()
plt.show()
Quelle est la probabilité qu'un nombre aléatoire qui suit une distribution normale standard produise une valeur de 2 ou plus? Calculons.
sample_size = 10000 #Nombre de nombres aléatoires générés
dist = [random.normalvariate(mu=0, sigma=1) for i in range(sample_size)]
p = sum([1 for n in dist if n >= 2]) / sample_size
print("valeur p: %(p)s " %locals())
On suppose que la «valeur de l'écart», qui est souvent utilisée dans les examens universitaires, suit une distribution normale avec une moyenne de 50 et un écart-type de 10. Dessinons une distribution. Ici, imaginez le nombre d'élèves sur l'axe vertical.
sample_size = 10000 #Nombre de nombres aléatoires générés
#Distribution normale avec moyenne 50 et écart type 10
dist = [random.normalvariate(mu=50, sigma=10) for i in range(sample_size)]
#Dessinez un histogramme.
plt.hist(dist, bins=100)
plt.grid()
plt.show()
Combien d'élèves sur 10 000 ont un écart de 70 ou plus?
#Défi 3
import numpy as np #Bibliothèque pour le calcul numérique
import scipy as sp #Bibliothèque de calculs scientifiques
from scipy import stats #Bibliothèque de calculs statistiques
Le test du chi carré est une méthode utilisée pour tester si deux distributions sont identiques.
Quand j'ai lancé les dés 60 fois et compté le nombre de fois que chaque jet est sorti, c'est devenu comme suit.
Jet de dés td> | 1 | 2 | 3 | 4 | 5 | 6 |
Nombre d'occurrences td> | 17 | 10 | 6 | 7 | 15 | 5 |
À ce stade, testons s'il suit ou non la distribution des valeurs théoriques (distribution uniforme).
significance = 0.05
o = [17, 10, 6, 7, 15, 5] #La valeur de mesure
e = [10, 10, 10, 10, 10, 10] #Valeur théorique
chi2, p = stats.chisquare(o, f_exp = e)
print('la valeur chi2 est%(chi2)s' %locals())
print('La probabilité est%(p)s' %locals())
if p < significance:
print('Niveau de signification%(significance)Il y a une différence significative dans s' %locals())
else:
print('Niveau de signification%(significance)Il n'y a pas de différence significative dans s' %locals())
la valeur chi2 est 12,4 La probabilité est de 0,029699459203520212 À un niveau de signification de 0,05, il existe une différence significative
Lorsque les qualités d'expédition d'un certain légume cultivé selon la méthode A et la méthode B sont telles qu'indiquées dans le tableau suivant, devrions-nous considérer qu'il existe une relation entre ces méthodes de culture et la qualité du produit?
Excellent th> | Bon th> | Oui th> | Total th> | |
---|---|---|---|---|
Une méthode td> | 12 | 30 | 58 | 100 |
Méthode B td> | 14 | 90 | 96 | 200 |
total td> | 26 | 120 | 154 | 300 |
#Exercice 4
#Test t non apparié
significance = 0.05
X = [68, 75, 80, 71, 73, 79, 69, 65]
Y = [86, 83, 76, 81, 75, 82, 87, 75]
t, p = stats.ttest_ind(X, Y)
print('la valeur t est%(t)s' %locals())
print('La probabilité est%(p)s' %locals())
if p < significance:
print('Niveau de signification%(significance)Il y a une différence significative dans s' %locals())
else:
print('Niveau de signification%(significance)Il n'y a pas de différence significative dans s' %locals())
La valeur t est -3,214043146821967 La probabilité est de 0,006243695014300228 À un niveau de signification de 0,05, il existe une différence significative
Le même test arithmétique a été effectué dans deux classes, la 6e année 1re classe et la 6e année 2e classe, et les résultats ont été obtenus. Veuillez tester s'il y a une différence de points entre les deux classes.
Groupe de 6e année th> | Score th> | 6e groupe de 2e année th> | Score th> |
---|---|---|---|
1 | 70 | 1 | 85 |
2 | 75 | 2 | 80 |
3 | 70 | 3 | 95 |
4 | 85 | 4 | 70 |
5 | 90 | 5 | 80 |
6 | 70 | 6 | 75 |
7 | 80 | 7 | 80 |
8 | 75 | 8 | 90 |
class_one = [70, 75, 70, 85, 90, 70, 80, 75]
class_two = [85, 80, 95, 70, 80, 75, 80, 90]
#Défi 5
#Test t apparié
significance = 0.05
X = [68, 75, 80, 71, 73, 79, 69, 65]
Y = [86, 83, 76, 81, 75, 82, 87, 75]
t, p = stats.ttest_rel(X, Y)
print('la valeur t est%(t)s' %locals())
print('La probabilité est%(p)s' %locals())
if p < significance:
print('Niveau de signification%(significance)Il y a une différence significative dans s' %locals())
else:
print('Niveau de signification%(significance)Il n'y a pas de différence significative dans s' %locals())
La valeur t est -2,9923203754253302 La probabilité est de 0,02016001617368161 À un niveau de signification de 0,05, il existe une différence significative
Veuillez tester s'il y a une différence entre la langue nationale et le score arithmétique.
Groupe de 6e année th> | Japonais th> | Arithmétique th> |
---|---|---|
1 | 90 | 95 |
2 | 75 | 80 |
3 | 75 | 80 |
4 | 75 | 80 |
5 | 80 | 75 |
6 | 65 | 75 |
7 | 75 | 80 |
8 | 80 | 85 |
kokugo = [90, 75, 75, 75, 80, 65, 75, 80]
sansuu = [95, 80, 80, 80, 75, 75, 80, 85]
#Défi 6
#Analyse dispersive d'un facteur
significance = 0.05
a = [34, 39, 50, 72, 54, 50, 58, 64, 55, 62]
b = [63, 75, 50, 54, 66, 31, 39, 45, 48, 60]
c = [49, 36, 46, 56, 52, 46, 52, 68, 49, 62]
f, p = stats.f_oneway(a, b, c)
print('La valeur f est%(f)s' %locals())
print('La probabilité est%(p)s' %locals())
if p < significance:
print('Niveau de signification%(significance)Il y a une différence significative dans s' %locals())
else:
print('Niveau de signification%(significance)Il n'y a pas de différence significative dans s' %locals())
La valeur f est 0,09861516667148518 La probabilité est de 0,9064161716556407 Niveau de signification 0,05, pas de différence significative
Effectuez une analyse de dispersion en utilisant les données ci-dessous.
group1 = [80, 75, 80, 90, 95, 80, 80, 85, 85, 80, 90, 80, 75, 90, 85, 85, 90, 90, 85, 80]
group2 = [75, 70, 80, 85, 90, 75, 85, 80, 80, 75, 80, 75, 70, 85, 80, 75, 80, 80, 90, 80]
group3 = [80, 80, 80, 90, 95, 85, 95, 90, 85, 90, 95, 85, 98, 95, 85, 85, 90, 90, 85, 85]
#Défi 7
Sélectionnez l'un des résultats du questionnaire suivant sur Twitter et effectuez un test statistique. Aussi, considérez les résultats statistiquement.
Recommended Posts