scipy.stats.hypergeom#

scipy.stats.hypergeom = <scipy.stats._discrete_distns.hypergeom_gen Objekt>[Quelle]#

Eine diskrete Zufallsvariable der hypergeometrischen Verteilung.

Die hypergeometrische Verteilung modelliert das Ziehen von Objekten aus einer Urne. M ist die Gesamtzahl der Objekte, n ist die Gesamtzahl der Objekte vom Typ I. Die Zufallsvariable repräsentiert die Anzahl der Objekte vom Typ I in N Stichproben, die ohne Zurücklegen aus der Gesamtpopulation gezogen werden.

Als Instanz der Klasse rv_discrete erbt das Objekt hypergeom von dieser eine Sammlung generischer Methoden (siehe unten für die vollständige Liste) und vervollständigt sie mit Details, die spezifisch für diese Verteilung sind.

Methoden

rvs(M, n, N, loc=0, size=1, random_state=None)

Zufallsvariaten.

pmf(k, M, n, N, loc=0)

Wahrscheinlichkeitsmassenfunktion.

logpmf(k, M, n, N, loc=0)

Logarithmus der Wahrscheinlichkeitsmassenfunktion.

cdf(k, M, n, N, loc=0)

Kumulative Verteilungsfunktion.

logcdf(k, M, n, N, loc=0)

Logarithmus der kumulativen Verteilungsfunktion.

sf(k, M, n, N, loc=0)

Überlebensfunktion (auch definiert als 1 - cdf, aber sf ist manchmal genauer).

logsf(k, M, n, N, loc=0)

Logarithmus der Überlebensfunktion.

ppf(q, M, n, N, loc=0)

Perzentilpunktfunktion (Umkehrung von cdf — Perzentile).

isf(q, M, n, N, loc=0)

Umgekehrte Überlebensfunktion (Umkehrung von sf).

stats(M, n, N, loc=0, moments=’mv’)

Mittelwert(‚m‘), Varianz(‚v‘), Schiefe(‚s‘) und/oder Kurtosis(‚k‘).

entropy(M, n, N, loc=0)

(Differential-)Entropie der RV.

expect(func, args=(M, n, N), loc=0, lb=None, ub=None, conditional=False)

Erwartungswert einer Funktion (einer Variablen) bezüglich der Verteilung.

median(M, n, N, loc=0)

Median der Verteilung.

mean(M, n, N, loc=0)

Mittelwert der Verteilung.

var(M, n, N, loc=0)

Varianz der Verteilung.

std(M, n, N, loc=0)

Standardabweichung der Verteilung.

interval(confidence, M, n, N, loc=0)

Konfidenzintervall mit gleichen Flächen um den Median.

Siehe auch

nhypergeom, binom, nbinom

Hinweise

Die zur Bezeichnung der Formparameter (M, n und N) verwendeten Symbole sind nicht universell akzeptiert. Siehe die Beispiele zur Klärung der hier verwendeten Definitionen.

Die Wahrscheinlichkeitsmassenfunktion ist wie folgt definiert:

\[p(k, M, n, N) = \frac{\binom{n}{k} \binom{M - n}{N - k}} {\binom{M}{N}}\]

für \(k \in [\max(0, N - M + n), \min(n, N)]\), wobei die Binomialkoeffizienten wie folgt definiert sind:

\[\binom{n}{k} \equiv \frac{n!}{k! (n - k)!}.\]

Diese Verteilung verwendet Routinen aus der Boost Math C++ Bibliothek zur Berechnung der Methoden pmf, cdf, sf und stats. [1]

Die obige Wahrscheinlichkeitsmassenfunktion ist in der „standardisierten“ Form definiert. Um die Verteilung zu verschieben, verwenden Sie den Parameter loc. Insbesondere ist hypergeom.pmf(k, M, n, N, loc) identisch gleichbedeutend mit hypergeom.pmf(k - loc, M, n, N).

Referenzen

[1]

The Boost Developers. “Boost C++ Libraries”. https://www.boost.org/.

Beispiele

>>> import numpy as np
>>> from scipy.stats import hypergeom
>>> import matplotlib.pyplot as plt

Angenommen, wir haben eine Sammlung von 20 Tieren, von denen 7 Hunde sind. Wenn wir dann die Wahrscheinlichkeit wissen wollen, eine bestimmte Anzahl von Hunden zu finden, wenn wir zufällig 12 der 20 Tiere auswählen, können wir eine gefrorene Verteilung initialisieren und die Wahrscheinlichkeitsmassenfunktion plotten.

>>> [M, n, N] = [20, 7, 12]
>>> rv = hypergeom(M, n, N)
>>> x = np.arange(0, n+1)
>>> pmf_dogs = rv.pmf(x)
>>> fig = plt.figure()
>>> ax = fig.add_subplot(111)
>>> ax.plot(x, pmf_dogs, 'bo')
>>> ax.vlines(x, 0, pmf_dogs, lw=2)
>>> ax.set_xlabel('# of dogs in our group of chosen animals')
>>> ax.set_ylabel('hypergeom PMF')
>>> plt.show()
../../_images/scipy-stats-hypergeom-1_00_00.png

Anstatt eine gefrorene Verteilung zu verwenden, können wir auch die Methoden von hypergeom direkt verwenden. Um beispielsweise die kumulative Verteilungsfunktion zu erhalten, verwenden Sie

>>> prb = hypergeom.cdf(x, M, n, N)

Und um Zufallszahlen zu generieren

>>> R = hypergeom.rvs(M, n, N, size=10)