Ich möchte Daten mit Python analysieren können (Teil 2)

(Teil 2)

(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).

Wahrscheinlichkeit, 2 Sätze mit 2 als 1 Satz geworfenen Münzen zu werfen

Betrachten Sie in Teil 2 wie im Beispiel von P61 das Ergebnis des Werfens von 2 Sätzen (dh 4-maliges Werfen von Münzen) unter der Annahme, dass "zweimal werfen" = "1 Satz". Da Münzen viermal geworfen werden, erscheint das Muster

5 Möglichkeiten.

Code


from random import randint
from decimal import Decimal
from prettytable import PrettyTable
import numpy as np

def tossBiasedCoin():
    """ Returns 0 or 1 with 0 having 2/3 chance """
    return randint(0,2) % 2

# Make a 3x3 array
counts = [[0 for j in range(3)] for i in range(3)]

# Toss a coin many times to get counts
sampleCount = 50000
for num in range(sampleCount):    
    firstSet = [tossBiasedCoin(),tossBiasedCoin()]
    secondSet = [tossBiasedCoin(),tossBiasedCoin()]
    counts[sum(secondSet)][sum(firstSet)] += 1

# Conert all counts to perentage
TWOPLACES = Decimal(10) ** -2 
for i in range(3):
    for j in range(3):
        value = counts[i][j]        
        counts[i][j] = (100 * Decimal(counts[i][j])/Decimal(sampleCount)).quantize(TWOPLACES)
        print("Converted the value {} to percentage {}".format(value, counts[i][j]))

# Make summaries of number of heads.
keys = np.arange(5)
values = [counts[0][0], # 0
          counts[0][1]+counts[1][0], # 1
          counts[0][2]+counts[2][0]+counts[1][1],
          counts[1][2]+counts[2][1],
          counts[2][2]]
          
# Add row descriptions
counts[0].insert(0, '2nd set 0 head')
counts[1].insert(0, '2nd set 1 head')
counts[2].insert(0, '2nd set 2 heads')

# Create table with column descriptions, add rows, then show it.
table = PrettyTable(["", "1st set 0 head", "1st set 1 head", "1st set 2 heads"])
table.padding_width = 1
table.add_row(counts[0])
table.add_row(counts[1])
table.add_row(counts[2])
print table

# Draw a bar chart
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
rects = plt.bar(keys,
                 values, 
                 0.5,
                 alpha=0.4,
                 align="center", 
                 color='b')

plt.xlabel('Number of heads with two sets')
plt.ylabel('Probability (%)')
plt.title('Probabilities heads with a biased coin')
plt.xticks(keys, np.arange(5))

plt.tight_layout()
plt.show()

Die Programmstruktur ist grundsätzlich dieselbe wie beim letzten Mal.

Weitere Variablen zum Speichern der Ergebnisse

Erstellen Sie eine 3x3-Liste, die mit Abbildung 1-19 identisch ist.

# Make a 3x3 array
counts = [[0 for j in range(3)] for i in range(3)]

Wirf 2 Sätze Münzen (1 Satz = 2 Mal)

Schleife 500.000 Mal und wirf jedes Mal insgesamt 4 Mal Münzen.

# Toss a coin many times to get counts
sampleCount = 50000
for num in range(sampleCount):    
    firstSet = [tossBiasedCoin(),tossBiasedCoin()]
    secondSet = [tossBiasedCoin(),tossBiasedCoin()]
    counts[sum(secondSet)][sum(firstSet)] += 1

Vorbereitung von Balkendiagrammdaten

Es wird ein wenig mühsam. Das Muster "Tabelle ist zweimal (Blätter)" besteht aus 2 Sätzen

  1. Satz ist 2 Blatt, 2. Satz ist 0 Blatt 0 für den 1. Satz, 2 für den 2. Satz 1 für den 1. Satz, 1 für den 2. Satz Es gibt drei Möglichkeiten, also fügen Sie alle hinzu.
# Make summaries of number of heads.
keys = np.arange(5)
values = [counts[0][0], # 0
          counts[0][1]+counts[1][0], # 1
          counts[0][2]+counts[2][0]+counts[1][1],
          counts[1][2]+counts[2][1],
          counts[2][2]]

Vorbereitung der Tabellendaten

Fügen Sie eine dritte Zeile hinzu, um von einer 2x2-Struktur zu einer 3x3-Struktur zu wechseln.

# Add row descriptions
counts[0].insert(0, '2nd set 0 head')
counts[1].insert(0, '2nd set 1 head')
counts[2].insert(0, '2nd set 2 heads')

Erstellen Sie eine Tabelle und ein Balkendiagramm

Grundsätzlich werden Änderungen als Reaktion auf die Erhöhung vorgenommen.

# Create table with column descriptions, add rows, then show it.
table = PrettyTable(["", "1st set 0 head", "1st set 1 head", "1st set 2 heads"])
table.padding_width = 1
table.add_row(counts[0])
table.add_row(counts[1])
table.add_row(counts[2])
print table

# Draw a bar chart
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
rects = plt.bar(keys,
                 values, 
                 0.5,
                 alpha=0.4,
                 align="center", 
                 color='b')

plt.xlabel('Number of heads with two sets')
plt.ylabel('Probability (%)')
plt.title('Probabilities heads with a biased coin')
plt.xticks(keys, np.arange(5))

plt.tight_layout()
plt.show()

Ergebnis

image

Es sieht aus wie ein "Standardabweichungs" -Diagramm! Das ist es, was dieses Kapitel in erster Linie demonstrieren wird.

Weiterhin ist ersichtlich, dass die Wahrscheinlichkeit von "einer Tabelle" am höchsten ist. Dies bedeutet, dass "die Wahrscheinlichkeit, 4 Mal zu werfen und die Tabelle erscheint (1/3)" "4 x 1/3" = 1,333 ist. Mit anderen Worten bedeutet dies, dass "das Werfen von vier Karten normalerweise zu einem Tisch führt".

(Teil 3) wird fortgesetzt.

Recommended Posts

Ich möchte Daten mit Python analysieren können (Teil 3)
Ich möchte Daten mit Python analysieren können (Teil 1)
Ich möchte Daten mit Python analysieren können (Teil 4)
Ich möchte Daten mit Python analysieren können (Teil 2)
Ich möchte Protokolle mit Python analysieren
Ich möchte mit Python debuggen
Ich möchte Python mit VS-Code ausführen können
Ich möchte mit aws mit Python spielen
☆ Mr. Anzai… !! Ich möchte die Daten analysieren …… Teil 1 Datenvorbereitung ☆ Analysieren wir die NBA-Spielerstatistiken (Ergebnisse) mit Python. Basketball
[Pandas] Ich habe versucht, Verkaufsdaten mit Python zu analysieren. [Für Anfänger]
Ich möchte MATLAB feval mit Python verwenden
Ich möchte 100 Datenwissenschaften mit Colaboratory schlagen
Ich möchte ein Spiel mit Python machen
Ich habe versucht, CloudWatch-Daten mit Python abzurufen
Ich möchte Temporäres Verzeichnis mit Python2 verwenden
#Unresolved Ich möchte Gobject-Introspection mit Python3 kompilieren
Ich möchte APG4b mit Python lösen (Kapitel 2)
Ich möchte mit Python in eine Datei schreiben
Ich möchte die Optimierung mit Python und CPlex behandeln
Ich möchte mit Python-Datenklasse nach hinten erben
Ich möchte mit einem Roboter in Python arbeiten.
Ich möchte Lambda mit Python auf Mac AWS!
Ich möchte einen Quantencomputer mit Python betreiben
Ich möchte eine andere Version von Python mit pyvenv angeben
Ich habe versucht, mit Python faker verschiedene "Dummy-Daten" zu erstellen
Ich möchte automatisch an Online-Kursen mit Python + Selen teilnehmen!
[Python] Ich möchte die Option -h mit argparse verwenden
Ich möchte ○○ mit Pandas machen
Ich habe Python satt, also habe ich versucht, die Daten mit nehan zu analysieren (ich möchte sogar mit Corona live gehen) - Teil 2)
Ich habe Python satt, also habe ich versucht, die Daten mit nehan zu analysieren (ich möchte sogar mit Corona live gehen) - Teil 1)
Ich möchte das Wetter mit LINE bot feat.Heroku + Python wissen
Ich möchte APG4b mit Python lösen (nur 4.01 und 4.04 in Kapitel 4)
Ich möchte den Anfang des nächsten Monats mit Python ausgeben
Versuchen Sie, Online-Familien-Mahjong mit Python zu analysieren (TEIL 1: Daten aufnehmen)
Ich möchte den vollständigen Text mit elasticsearch + python durchsuchen
[Einführung] Ich möchte mit Python einen Mastodon-Bot erstellen! 【Anfänger】
Ich möchte Objekte mit OpenCV erkennen
Verarbeiten Sie Pubmed .xml-Daten mit Python [Teil 2]
Ich möchte mit dem Reim Teil1 umgehen
Ich möchte einen Blog mit Jupyter Notebook schreiben
Ich möchte mit dem Reim part3 umgehen
Konvertieren Sie Excel-Daten mit Python in JSON
Ich möchte ein Glas aus Python verwenden
Ich wollte ABC160 mit Python lösen
Ich möchte eine Python-Umgebung erstellen
Ich möchte eine Pip-Installation mit PythonAnywhere durchführen
[Teil1] Scraping mit Python → Organisieren Sie bis zu CSV!
Ich wollte ABC172 mit Python lösen
Ich möchte mit dem Reim part2 umgehen
Ich möchte mit dem Reim part5 umgehen
Ich möchte mit dem Reim part4 umgehen
Ich möchte es mit Python Lambda Django machen, aber ich werde aufhören
[Data Science-Grundlagen] Ich habe versucht, mit Python von CSV auf MySQL zu speichern
Ich möchte Twitter mit Python twittern, bin aber süchtig danach
Mit Docker durchgeführte Umgebungswartung (Ich möchte GrADS in Python nachbearbeiten