(Partie 4)
(Reportez-vous à la page qui apparaît dans le texte Les statistiques sont l'étude la plus solide [Pratique] Réflexions et méthodes d'analyse des données-par Kei Nishiuchi Voici la page du livre /9784478028230.html).
Le résultat de lancer des pièces de monnaie 16 fois, qui dit "Pour référence" sur P63.
L'auteur souligne que "la somme des données converge vers une distribution normale" même en jetant une pièce asymétrique avec 1/3 de chance d'apparaître dans le tableau.
La raison pour laquelle il a la forme d'une "montagne" est que la chose la plus simple à comprendre est que si les données sont représentées sous la forme d'un tableau 2x2, 3x3 ou 8x8, "un autre modèle qui produit le même résultat" du coin supérieur droit vers le coin inférieur gauche. Il y en a beaucoup "", et en les additionnant, plus la diagonale est proche, plus la valeur totale est grande = le point le plus élevé de la montagne.
Cette fois, je ne ferai qu'un graphique à barres, donc je ne préparerai pas les données pour en faire un tableau.
from random import randint
from decimal import Decimal
import numpy as np
def tossBiasedCoin():
""" Returns 0 or 1 with 0 having 2/3 chance """
return randint(0,2) % 2
# Prepare counters
tossCount = 16
counts = [0]*tossCount
# Toss a coin many times to get counts
sampleCount = 50000
for num in range(sampleCount):
headCount = 0
for i in range(tossCount): # Toss the coin 16 times
headCount += tossBiasedCoin()
counts[headCount] += 1
# Conert all counts to perentage
TWOPLACES = Decimal(10) ** -2
for i in range(tossCount):
value = counts[i]
counts[i] = (100 * Decimal(counts[i])/Decimal(sampleCount)).quantize(TWOPLACES)
print("Converted the value {} to percentage {}".format(value, counts[i]))
# Draw a bar chart
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
rects = plt.bar(np.arange(tossCount),
counts,
0.5,
alpha=0.4,
align="center",
color='b')
plt.xlabel('Number of heads for 16-toss')
plt.ylabel('Probability (%)')
plt.title('Probabilities heads with a biased coin')
plt.xticks(np.arange(tossCount))
plt.tight_layout()
plt.show()
Obéissant, il crée une liste de 16 éléments.
# Prepare counters
tossCount = 16
counts = [0]*tossCount
Lancez 16 fois et exécutez 500000 fois pour voir combien de feuilles sont sur le devant (bien que vous n'ayez pas à tourner autant)
## Toss a coin many times to get counts
sampleCount = 50000
for num in range(sampleCount):
headCount = 0
for i in range(tossCount): # Toss the coin 16 times
headCount += tossBiasedCoin()
counts[headCount] += 1
# Conert all counts to perentage
TWOPLACES = Decimal(10) ** -2
for i in range(tossCount):
value = counts[i]
counts[i] = (100 * Decimal(counts[i])/Decimal(sampleCount)).quantize(TWOPLACES)
print("Converted the value {} to percentage {}".format(value, counts[i]))
Je n'ai rien fait de spécial.
# Draw a bar chart
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
rects = plt.bar(np.arange(tossCount),
counts,
0.5,
alpha=0.4,
align="center",
color='b')
plt.xlabel('Number of heads for 16-toss')
plt.ylabel('Probability (%)')
plt.title('Probabilities heads with a biased coin')
plt.xticks(np.arange(tossCount))
plt.tight_layout()
plt.show()
Un graphique similaire au graphique 1-21 à la page 64 a été créé.
C'est un talent pour pouvoir analyser des données avec Python, ou quelque chose que je pense devoir faire à l'avenir.
--Bien que cela n'ait rien à voir avec Python, une revue fondamentale et une étude des statistiques et des probabilités --J'ai vu l'un des points clés de Python en tant que type de séquence
Recommended Posts