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_discreteerbt das Objekthypergeomvon 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
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,sfundstats. [1]Die obige Wahrscheinlichkeitsmassenfunktion ist in der „standardisierten“ Form definiert. Um die Verteilung zu verschieben, verwenden Sie den Parameter
loc. Insbesondere isthypergeom.pmf(k, M, n, N, loc)identisch gleichbedeutend mithypergeom.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()
Anstatt eine gefrorene Verteilung zu verwenden, können wir auch die Methoden von
hypergeomdirekt 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)