1. Mit Python 2-1 gelernte Statistiken. Wahrscheinlichkeitsverteilung [diskrete Variable]

#Import der numerischen Berechnungsbibliothek
import numpy as np
import scipy as sp
import pandas as pd
from pandas import Series, DataFrame
#Visualisierungsbibliothek importieren
import matplotlib.pyplot as plt
import matplotlib as mpl
import seaborn as sns
%matplotlib inline
#Japanisches Anzeigemodul von matplotlib
!pip install japanize-matplotlib
import japanize_matplotlib

⑴ Bernoulli-Verteilung

x = np.array([0,0,1,1,0,1,0,0])

#Berechnen Sie die Wahrscheinlichkeitsverteilung
p = len(x[x==1]) / len(x)
pmf_bernoulli = sp.stats.bernoulli.pmf(x, p)

#Visualisierung
plt.vlines(x, 0, pmf_bernoulli, 
           colors='blue', lw=50)
plt.xticks([0,1])
plt.xlim([0 - 0.5, 1 + 0.5])
plt.grid(True)

image.png

Zwei Arten von Ereignissen Wahrscheinlichkeit
0 0.625
1 0.375

⑵ Binomialverteilung

sp.stats.binom.pmf(n=5, p=0.5, k=2)

image.png

#Pseudozufallszahl generieren
np.random.seed(1)
rvs_binom = sp.stats.binom.rvs(n=10, p=0.2, size=10000)

#Wahrscheinlichkeitsverteilung abrufen
m = np.arange(0, 10+1, 1)
pmf_binom = sp.stats.binom.pmf(n=10, p=0.2, k=m)

#Visualisierung
sns.distplot(rvs_binom, bins=m, 
             kde=False, norm_hist=True, label='rvs')
plt.plot(m, pmf_binom, label='pmf')
plt.xticks(m)
plt.legend()
plt.grid()

image.png

Häufigkeit, mit der die Tabelle angezeigt wird Wahrscheinlichkeit
0 0.107374182
1 0.268435456
2 0.301989888
3 0.201326592
4 0.088080384
5 0.026424115
6 0.005505024
7 0.000786432
8 0.000073728
9 0.000004096
10 0.000000102

⑶ Poisson-Verteilung

sp.stats.poisson.pmf(k=2, mu=5)

image.png

#Pseudozufallszahl generieren
np.random.seed(1)
rvs_poisson = sp.stats.poisson.rvs(mu=2, size=10000)

#Wahrscheinlichkeitsverteilung abrufen
m = np.arange(0, 10+1, 1)
pmf_poisson = sp.stats.poisson.pmf(mu=2, k=m)

#Visualisierung
sns.distplot(rvs_poisson, bins=m, 
             kde=False, norm_hist=True, label='rvs')
plt.plot(m, pmf_poisson, label='pmf')
plt.xticks(m)
plt.legend()
plt.grid()

image.png

Anzahl der Vorkommen Wahrscheinlichkeit
0 0.135335283
1 0.270670566
2 0.270670566
3 0.180447044
4 0.090223522
5 0.036089409
6 0.012029803
7 0.003437087
8 0.000859272
9 0.000190949
10 0.000038190
#Geben Sie die Parameter an
n = 100000000
p = 0.00000002

#Berechnen Sie die Wahrscheinlichkeitsverteilung der Binomialverteilung
num = np.arange(0, 10+1, 1)
pmf_binom_2 = sp.stats.binom.pmf(n=n, p=p, k=num)

#Visualisierung
plt.plot(m, pmf_poisson, 
         color='lightgray', lw=10, label='poisson')
plt.plot(m, pmf_binom_2, 
         color='black', linestyle='dotted', label='binomial')
plt.xticks(num)
plt.legend()
plt.grid()

image.png

⑷ Geometrische Verteilung

%precision 3
sp.stats.geom.pmf(k=1, p=1/6)

image.png

#Geben Sie die Anzahl der Versuche an
num = np.arange(1, 11, 1)

#Berechnen Sie die Wahrscheinlichkeitsverteilung
prob = []
for i in num:
    value = sp.stats.geom.pmf(k=i, p=1/6)
    prob.append(value)

#Visualisierung
plt.bar(num, prob)
plt.xticks(num)
plt.xlabel('Häufigkeit, bis 1 zum ersten Mal erscheint')
plt.ylabel('Wahrscheinlichkeit')
plt.show()

image.png

Anzahl von Versuchen Wahrscheinlichkeit eine Formel
1 0.167
2 0.139 ⅚ ・ ⅙
3 0.116 ⅚ ・ ⅚ ・ ⅙
4 0.096 ⅚ ・ ⅚ ・ ⅚ ・ ⅙
5 0.080 ⅚ ・ ⅚ ・ ⅚ ⅚ ⅚ ⅚ ・
6 0.067 ⅚ ・ ⅚ ・ ⅚ ・ ⅚ ⅚ ⅚ ⅚ ・
7 0.056 ⅚ ・ ⅚ ・ ⅚ ・ ⅚ ・ ⅚ ・ ⅚ ・ ・
8 0.047 ⅚ ・ ⅚ ・ ⅚ ・ ⅚ ・ ⅚ ・ ⅚ ・ ⅚ ⅚ ・ ⅙
9 0.039 ⅚ ・ ⅚ ・ ⅚ ・ ⅚ ・ ⅚ ・ ⅚ ⅚ ・ ⅚ ・ ⅚ ・ ⅙
10 0.032 ⅚ ・ ⅚ ・ ⅚ ・ ⅚ ・ ⅚ ・ ⅚ ・ ・ ⅚ ・ ⅚ ・ ⅚ ・ ⅙

⑸ Gleichmäßige Verteilung

#Geben Sie alle Ereignisse an
num = np.arange(1, 7, 1)

#Berechnen Sie die Wahrscheinlichkeitsverteilung
prob = []
for i in num:
    value = 1 / len(num)
    prob.append(value)

#Visualisierung
plt.bar(num, prob)
plt.xticks(num)
plt.xlabel('Augen würfeln')
plt.ylabel('Wahrscheinlichkeit')
plt.show()

image.png

Augen würfeln Wahrscheinlichkeit
1 0.167
2 0.167
3 0.167
4 0.167
5 0.167
6 0.167

⑹ hypergeometrische Verteilung

#Geben Sie die Parameter an
M = 20 #Gesamtzahl
n = 7  #Anzahl der Treffer
N = 12 #Anzahl der Auswahlen

#Erstellen Sie eine stochastische Variable
k = np.arange(0, n+1)

#Erstellen Sie ein Modell
hgeom = sp.stats.hypergeom(M, n, N)
#Berechnen Sie die Wahrscheinlichkeitsverteilung
pmf_hgeom = hgeom.pmf(k)

#Visualisierung
plt.bar(k, pmf_hgeom)
plt.xticks(k)
plt.xlabel('Anzahl der Treffer')
plt.ylabel('Wahrscheinlichkeit')
plt.show()

image.png

Anzahl der Treffer Wahrscheinlichkeit
0 0.00010
1 0.00433
2 0.04768
3 0.19866
4 0.35759
5 0.28607
6 0.09536
7 0.01022

⑺ Negative Binomialverteilung

#Geben Sie die Parameter an
N = 12  #Anzahl von Versuchen
p = 0.5 #Erfolgswahrscheinlichkeit
k = 3   #Anzahl der Erfolge

#Berechnen Sie die Wahrscheinlichkeitsverteilung
pmf_nbinom = sp.stats.nbinom.pmf(range(N), k, p)

#Visualisierung
plt.bar(range(N), pmf_nbinom)
plt.xlabel('Anzahl der Fehler')
plt.ylabel('Wahrscheinlichkeit')
plt.xticks(range(N))
plt.show()

image.png

Anzahl der Fehler Wahrscheinlichkeit
0 0.125
1 0.188
2 0.188
3 0.156
4 0.117
5 0.082
6 0.055
7 0.035
8 0.022
9 0.013
10 0.008
11 0.005

Zusammenfassung

Wir haben uns die diskrete Wahrscheinlichkeitsverteilung angesehen, werden sie jedoch in einer Liste zusammenfassen, in der bekannt ist, welche Wahrscheinlichkeitsvariable verwendet wird und was auf die x-Achse zu setzen ist.

Arten der Wahrscheinlichkeitsverteilung Wahrscheinlichkeitsvariable Parameter
Bernoulli-Vertrieb Ereignis 0, 1 Auftrittswahrscheinlichkeit p
Binäre Verteilung Anzahl von Versuchen Auftrittswahrscheinlichkeit p,Anzahl der Vorkommen k,Anzahl der Versuche n
Poisson-Verteilung Anzahl von Versuchen Durchschnittliche Anzahl der Vorkommen mu
Geometrische Verteilung Anzahl von Versuchen Erfolgswahrscheinlichkeit p,Anzahl der Versuche k
Diskrete Gleichverteilung Art der Veranstaltung ※scipy.Die gleichmäßige Verteilung der Atate ist nur ein kontinuierlicher Typ
Super geometrische Verteilung Anzahl der Erfolge Gesamtzahl M.,Anzahl der Erfolge im ganzen n,Anzahl der Auswahlen N.
Negative Binomialverteilung Anzahl der Fehler Erfolgswahrscheinlichkeit p,Anzahl der Erfolge k,Anzahl der Versuche N.

Recommended Posts

1. Mit Python 2-1 gelernte Statistiken. Wahrscheinlichkeitsverteilung [diskrete Variable]
1. Mit Python gelernte Statistiken 2. Wahrscheinlichkeitsverteilung [Gründliches Verständnis von scipy.stats]
1. Mit Python 1-1 gelernte Statistiken. Grundlegende Statistiken (Pandas)
[Grundlagen der modernen mathematischen Statistik mit Python] Kapitel 3: Typische Wahrscheinlichkeitsverteilung
In Python ② erlernte statistische Wahrscheinlichkeitsverteilung für Testgrad 2
In Python ① erlernte statistische Wahrscheinlichkeitsverteilung für Testgrad 2
[Grundlagen der modernen mathematischen Statistik mit Python] Kapitel 2: Wahrscheinlichkeitsverteilung und Erwartungswert
Berechnen Sie die Probenverteilung mit Scipy (diskrete Verteilung)
[Python] Mit Pokemon erlernte objektorientierte Programmierung
Perceptron-Lernexperiment mit Python
Python-Datenstruktur mit Chemoinfomatik gelernt
Effiziente Netzaufnahme mit Python
Führen Sie mit Python, matplotlib, einen logarithmischen Normalwahrscheinlichkeitsplot durch
[Statistische Teststufe 2] Diskrete Wahrscheinlichkeitsverteilung
[Python] Ruft den Variablennamen mit str ab
Automatische vollständige JCG-Deckverteilung mit Python
Verwenden Sie Python und word2vec (gelernt) mit Azure Databricks
Lernen Sie langsam mit Python "Prinzip der Abhängigkeitsumkehr"
FizzBuzz in Python3
Scraping mit Python
Scraping mit Python
Python mit Go
Twilio mit Python
In Python integrieren
Spielen Sie mit 2016-Python
AES256 mit Python
Getestet mit Python
Python beginnt mit ()
mit Syntax (Python)
Bingo mit Python
Zundokokiyoshi mit Python
Excel mit Python
Mikrocomputer mit Python
Mit Python besetzen
Ich habe Python mit einem schönen Mädchen in Paiza # 02 gelernt
Ich habe Python mit einem schönen Mädchen in Paiza # 01 gelernt
Überprüfen Sie die atrophische Natur der Wahrscheinlichkeitsverteilung in Python