Verwendung der Binomialverteilung in Python

Von Fabian
Kategorie: Python
Lesezeit: 3 Minuten

Die Binomialverteilung ist eine der am häufigsten verwendeten Verteilungen in der Statistik. Es beschreibt die Wahrscheinlichkeit, k Erfolge in n Binomialversuchen zu erzielen.

Wenn eine Zufallsvariable X einer Binomialverteilung folgt, kann die Wahrscheinlichkeit, dass X = k erfolgreich ist, durch die folgende Formel ermittelt werden:

P(X = k) = n C k * P k * (1-p) nk

wo:

  • n: Anzahl der Versuche
  • k: Anzahl der Erfolge
  • p: Erfolgswahrscheinlichkeit eines bestimmten Versuchs
  • n C k: Die Anzahl der Möglichkeiten, k Erfolge in n Versuchen zu erzielen

In diesem Tutorial wird die Verwendung der Binomialverteilung in Python erläutert.

So generieren Sie eine Binomialverteilung

Mit der Funktion random.binomial aus der numpy-Bibliothek können Sie ein Array von Werten generieren, die einer Binomialverteilung folgen:

from numpy import random
# Generieren Sie ein Array mit 10 Werten, die einer Binomialverteilung folgen
random.binomial(n=10, p=.25, size=10)
array([5, 2, 1, 3, 3, 3, 2, 2, 1, 4])

Jede Zahl in dem resultierenden Array repräsentiert die Anzahl der „Erfolge“, die während 10 Versuchen erzielt wurden, wobei die Erfolgswahrscheinlichkeit in einem gegebenen Versuch 0,25 betrug.

Berechnen von Wahrscheinlichkeiten mithilfe einer Binomialverteilung

Sie können auch Fragen zu Binomialwahrscheinlichkeiten beantworten, indem Sie die binom-Funktion aus der Scipy-Bibliothek verwenden.

Frage 1: Nathan macht 60% seiner Freiwurfversuche. Wenn er 12 Freiwürfe schießt, wie hoch ist die Wahrscheinlichkeit, dass er genau 10 macht?

from scipy.stats import binom

# Binomialwahrscheinlichkeit berechnen
binom.pmf(k=10, n=12, p=0.6)

0.0639

Die Wahrscheinlichkeit, dass Nathan genau 10 Freiwürfe macht, beträgt 0,0639.

Frage 2: Marty wirft 5 Mal eine faire Münze. Wie groß ist die Wahrscheinlichkeit, dass die Münze zweimal oder weniger auf den Köpfen landet?

from scipy.stats import binom 

# Binomialwahrscheinlichkeit berechnen
binom.cdf(k=2, n=5, p=0.5)

0.5

Die Wahrscheinlichkeit, dass die Münze zweimal oder weniger auf den Köpfen landet, beträgt 0,5.

Frage 3: Es ist bekannt, dass 70% der Personen ein bestimmtes Gesetz unterstützen. Wenn 10 Personen zufällig ausgewählt werden, wie hoch ist die Wahrscheinlichkeit, dass zwischen 4 und 6 von ihnen das Gesetz unterstützen?

from scipy.stats import binom

# Binomialwahrscheinlichkeit berechnen
binom.cdf(k=6, n=10, p=0.7) - binom.cdf(k=3, n=10, p=0.7)

0.3398

Die Wahrscheinlichkeit, dass zwischen 4 und 6 der zufällig ausgewählten Personen das Gesetz unterstützen, beträgt 0,3398.

So visualisieren Sie eine Binomialverteilung

Sie können eine Binomialverteilung in Python mithilfe der Bibliotheken seaborn und matplotlib visualisieren :

from numpy import random
import matplotlib.pyplot as plt
import seaborn as sns

x = random.binomial(n=10, p=0.5, size=1000)

sns.distplot(x, hist=True, kde=False)

plt.show()

Binomialverteilungsdiagramm in Python

Die x-Achse beschreibt die Anzahl der Erfolge während 10 Versuchen und die y-Achse zeigt an, wie oft jede Anzahl von Erfolgen während 1.000 Experimenten aufgetreten ist.

Statistik: Der Weg zur Datenanalyse

* Amazon Affiliate Link


Das könnte Sie auch interessieren: