(Teil 4)
(Siehe die Seite im Text Statistik ist die stärkste Studie [Praxis] Gedanken und Methoden zur Datenanalyse von Kei Nishiuchi Dies ist die Seite des Buches /9784478028230.html).
Das Ergebnis des 16-fachen Werfens von Münzen, auf dem auf P63 "Als Referenz" steht.
Der Autor betont, dass "die Summe der Daten zu einer Normalverteilung konvergiert", selbst wenn eine asymmetrische Münze mit einer Wahrscheinlichkeit von 1/3 geworfen wird, in der Tabelle zu erscheinen.
Der Grund, warum es wie ein "Berg" geformt ist, ist, dass es am einfachsten zu verstehen ist, dass, wenn die Daten als 2x2-, 3x3- oder 8x8-Tabelle dargestellt werden, "ein anderes Muster, das das gleiche Ergebnis liefert", von rechts oben nach links unten. Es gibt viele "", und durch Addition, je näher an der Diagonale, desto größer der Gesamtwert = der höchste Punkt des Berges.
Dieses Mal werde ich nur ein Balkendiagramm erstellen, daher werde ich die Daten nicht vorbereiten, um daraus eine Tabelle zu machen.
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()
Gehorsam erstellt es eine Liste mit 16 Elementen.
# Prepare counters
tossCount = 16
counts = [0]*tossCount
Werfen Sie 16 Mal und führen Sie 500.000 Mal aus, um zu sehen, wie viele Blätter sich auf der Vorderseite befinden (obwohl Sie nicht so viel drehen müssen).
## 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]))
Ich habe nichts Besonderes gemacht.
# 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()
Ein Diagramm ähnlich Diagramm 1-21 auf Seite 64 wurde erstellt.
Es ist ein Händchen dafür, Daten mit Python analysieren zu können, oder etwas, von dem ich glaube, dass ich es in Zukunft tun muss.
Recommended Posts