Quel est le nombre total de lancers lorsque vous lancez les dés 100 fois?
La moyenne apprise à l'école primaire est le sommet des statistiques. Premièrement, utilisez la moyenne pour dériver la réponse à la première question et la comparer avec les résultats de la simulation.
import numpy as np
import numpy.random as rd
import matplotlib.pyplot as plt
#Définir un dé
#Connaître la moyenne
dice = [1, 2, 3, 4, 5, 6]
print("moyenne:", np.mean(dice))
#Définir le nombre de tentatives
#Vous pouvez voir la valeur attendue du total en combinaison avec la moyenne
trialsNum = 100
print("Valeur attendue totale:", np.mean(dice) * trialsNum)
input("Appuyez sur Entrée pour continuer. . .")
#Essayez en fait
#Dessinez un histogramme pour vérifier la distribution des rouleaux
resultList = [rd.choice(dice) for i in range(trialsNum)]
plt.hist(resultList, bins=6, rwidth=0.8, range=(0.5, 6.5))
plt.show()
print("total:", np.sum(resultList))
Le résultat n'est pas constant car il utilise des nombres aléatoires.
Moyenne de l'échantillon: 3.5
Valeur attendue totale: 350.0
Appuyez sur Entrée pour continuer. . .
total: 355
Le nombre moyen de lancers que vous pouvez obtenir lorsque vous lancez les dés une fois est de 3,5, vous pouvez donc répondre à la première question que le total de 100 lancers est d'environ 350, soit 100 fois la moyenne. Vous pouvez gérer la progression comme suit en utilisant la valeur moyenne / attendue.
Mais est-il normal de laisser la comparaison et le jugement à l'expérience et à l'intuition humaines? Vous pouvez utiliser le graphe déroulant pour voir les tendances au fil du temps, mais vous comptez toujours sur l'expérience et l'intuition.
Environ 350 ... Vous pouvez répondre à la première question.
Environ 350 ... Combien vaut "environ 350"? Ceci est représenté par la variance / l'écart type. Tout d'abord, trouvez l'écart type de l'échantillon, puis trouvez l'écart type des résultats de la simulation et comparez-les.
import numpy as np
import numpy.random as rd
import matplotlib.pyplot as plt
#Définir un dé
#Connaître la moyenne et la variance
dice = [1, 2, 3, 4, 5, 6]
print("Moyenne de l'échantillon:", np.mean(dice))
print("Dispersion des échantillons:", np.var(dice))
#Définir le nombre de tentatives
#Vous pouvez voir la valeur attendue du total en combinaison avec la moyenne de l'échantillon
#Peut prédire l'écart type total en combinaison avec la variance de l'échantillon
trialsNum = 100
print("Valeur attendue totale:", np.mean(dice) * trialsNum)
print("Écart type total (attendu):", np.sqrt(np.var(dice) * trialsNum))
input("Appuyez sur Entrée pour continuer. . .")
#Essayez en fait...Essayer
metaTrialsNum = 10000
resultList = [np.sum([rd.choice(dice) for i in range(trialsNum)])
for i in range(metaTrialsNum)]
myMean = np.mean(resultList)
myStd = np.std(resultList)
print("Moyenne du total:", myMean)
print("Écart type total (réel):", myStd)
# 68–95–99.Vérifiez si les 7 règles s'appliquent
win = [len([n for n in resultList if myMean - r * myStd <= n and n <= myMean + r * myStd]) /
metaTrialsNum for r in range(1, 4)]
print(
f'μ±σ : {myMean - 1 * myStd :.1f} ~ {myMean + 1 * myStd:.1f}: {win[0]:.2%}')
print(
f'μ±2σ: {myMean - 2 * myStd :.1f} ~ {myMean + 2 * myStd:.1f}: {win[1]:.2%}')
print(
f'μ±3σ: {myMean - 3 * myStd :.1f} ~ {myMean + 3 * myStd:.1f}: {win[2]:.2%}')
#Dessinez un histogramme pour voir la distribution totale
plt.hist(resultList, bins=25)
plt.show()
Le résultat n'est pas constant car il utilise toujours des nombres aléatoires.
Moyenne de l'échantillon: 3.5
Dispersion des échantillons: 2.9166666666666665
Valeur attendue totale: 350.0
Écart type total (attendu): 17.078251276599328
Appuyez sur Entrée pour continuer. . .
Moyenne du total: 349.9814
Écart type total (réel): 17.034108548438923
μ±σ : 332.9 ~ 367.0: 69.69%
μ±2σ: 315.9 ~ 384.0: 95.77%
μ±3σ: 298.9 ~ 401.1: 99.76%
La distribution totale s'intègre parfaitement dans 68–95–99.7 Rule C'est devenu une distribution. L'écart type d'environ 17 montre à quel point il est «d'environ 350». Et l'écart type peut être obtenu à partir de l'échantillon sans simulation.
À partir de la règle 68–95–99,7, nous avons trouvé la probabilité que le résultat de l'essai se situe dans cette plage lorsque x de μ ± xσ était 1,2,3. Alors ne connaissez-vous pas la probabilité lorsque x est égal à 1,5? Ou connaissez-vous la probabilité que le nombre total de rouleaux soit de 370 ou plus? C'est là qu'intervient la fonction d'erreur erf. Illustrons ci-dessous comment cette fonction fonctionne dans le programme python.
import math
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(-4.0, 4.1, 0.1)
leg1 = "μ-xσ ≦ a ≦ μ+xσ"
y1 = [math.erf(i/math.sqrt(2)) for i in x]
p1 = plt.plot(x, y1)
leg2 = "a ≦ μ+xσ"
y2 = [0.5 + 0.5 * math.erf(i/math.sqrt(2)) for i in x]
p2 = plt.plot(x, y2)
leg3 = "μ+xσ ≦ a"
y3 = [0.5 - 0.5 * math.erf(i/math.sqrt(2)) for i in x]
p3 = plt.plot(x, y3)
plt.legend((p1[0], p2[0], p3[0]),
(leg1, leg2, leg3), loc=0)
plt.grid(True)
plt.show()
La fonction d'erreur erf vous permet de calculer la probabilité que le résultat de l'essai soit compris entre μ ± xσ et inférieur ou égal à μ + xσ pour tout x.
Ou connaissez-vous la probabilité que le nombre total de rouleaux soit de 370 ou plus?
Il peut être trouvé en utilisant la fonction d'erreur erf Tout d'abord, trouvez la valeur de x en appliquant les valeurs à μ et σ dans l'équation suivante.
μ+xσ = 370
Valeur totale attendue: 350,0 Écart type total (estimé): 17,078251276599328
350+17x = 370 17x = 20 x = 1.18
Vous pouvez ensuite calculer la probabilité en appliquant une valeur à x dans la formule utilisée dans votre programme.
0.5 - 0.5 * math.erf(i/math.sqrt(2)
0.5 - 0.5 * erf(1.18/√2) = 0.12 = 12%
Lorsque vous lancez les dés 100 fois, il y a 12% de chances que le nombre total de lancers soit supérieur à 370. Avec la fonction moyenne, écart type et erreur, vous pouvez maintenant répondre à la première question.
Jusqu'où l'équipe qui a progressé au rythme indiqué dans le tableau ci-dessous progressera-t-elle à l'achèvement de l'itération 20?
Itération | Rapidité | Accumulation |
---|---|---|
1 | 7 | 7 |
2 | 3 | 10 |
3 | 3 | 13 |
4 | 6 | 19 |
5 | 6 | 25 |
μ = 200, n'est-ce pas?
Puisque la variance jusqu'à l'itération 5 est de 3,5, l'écart type jusqu'à l'itération 20 peut être supposé être σ = √ (3,5 * 20) ≒ 8,4. La plage de μ ± 3σ est d'environ 175 à 225.
Si vous répondez avec une précision d'environ 80%, disons 191 avec μ-1σ (arrondi vers le bas). Si l'objectif de progression jusqu'à l'itération 20 est supérieur à cela, vous devez négocier pour abaisser l'objectif à 191.
Si vous répondez avec une précision de 99%, disons 175 avec μ-3σ. Si votre objectif est de 225, il n'y a pas 1% de chances que vous soyez à temps. Même si l'objectif est de 200, la probabilité d'être à temps est de 50%, ce qui correspond à cinquante-cinquante. Il est facile de se blesser quand on juge que "Si vous continuez au rythme moyen, vous serez à temps!"
Étant donné que μ et σ fluctuent au fur et à mesure que les réalisations de progrès s'accumulent, calculons la probabilité d'aller au-delà de la cible avec la fonction d'erreur erf à tout moment. Contrairement aux dés, il n'y a pas de spécimen parfait.
L'unité de quantité de ressource est facile s'il s'agit du nombre d'itérations, mais si vous souhaitez la rendre plus détaillée, vous pouvez également la calculer par le nombre de jours ou d'hommes-jours.
Recommended Posts