scipy.stats.nbinom#
- scipy.stats.nbinom = <scipy.stats._discrete_distns.nbinom_gen object>[Quelle]#
Eine diskrete Zufallsvariable der negativen Binomialverteilung.
Als Instanz der Klasse
rv_discreteerbt das Objektnbinomvon dieser eine Sammlung allgemeiner Methoden (siehe unten für die vollständige Liste) und ergänzt sie um Details, die spezifisch für diese besondere Verteilung sind.Methoden
rvs(n, p, loc=0, size=1, random_state=None)
Zufallsvariaten.
pmf(k, n, p, loc=0)
Wahrscheinlichkeitsmassenfunktion.
logpmf(k, n, p, loc=0)
Logarithmus der Wahrscheinlichkeitsmassenfunktion.
cdf(k, n, p, loc=0)
Kumulative Verteilungsfunktion.
logcdf(k, n, p, loc=0)
Logarithmus der kumulativen Verteilungsfunktion.
sf(k, n, p, loc=0)
Überlebensfunktion (auch definiert als
1 - cdf, aber sf ist manchmal genauer).logsf(k, n, p, loc=0)
Logarithmus der Überlebensfunktion.
ppf(q, n, p, loc=0)
Perzentilpunktfunktion (Umkehrung von
cdf— Perzentile).isf(q, n, p, loc=0)
Umgekehrte Überlebensfunktion (Umkehrung von
sf).stats(n, p, loc=0, moments=’mv’)
Mittelwert(‚m‘), Varianz(‚v‘), Schiefe(‚s‘) und/oder Kurtosis(‚k‘).
entropy(n, p, loc=0)
(Differential-)Entropie der RV.
expect(func, args=(n, p), loc=0, lb=None, ub=None, conditional=False)
Erwartungswert einer Funktion (einer Variablen) bezüglich der Verteilung.
median(n, p, loc=0)
Median der Verteilung.
mean(n, p, loc=0)
Mittelwert der Verteilung.
var(n, p, loc=0)
Varianz der Verteilung.
std(n, p, loc=0)
Standardabweichung der Verteilung.
interval(confidence, n, p, loc=0)
Konfidenzintervall mit gleichen Flächen um den Median.
Siehe auch
Hinweise
Die negative Binomialverteilung beschreibt eine Folge von unabhängigen und identisch verteilten Bernoulli-Versuchen, die wiederholt werden, bis eine vordefinierte, nicht-zufällige Anzahl von Erfolgen eintritt.
Die Wahrscheinlichkeitsfunktion der Anzahl der Misserfolge für
nbinomlautet\[f(k) = \binom{k+n-1}{n-1} p^n (1-p)^k\]für \(k \ge 0\), \(0 < p \leq 1\)
nbinomnimmt \(n\) und \(p\) als Formparameter an, wobei \(n\) die Anzahl der Erfolge ist, \(p\) die Wahrscheinlichkeit eines einzelnen Erfolgs und \(1-p\) die Wahrscheinlichkeit eines einzelnen Misserfolgs ist.Eine weitere gebräuchliche Parametrisierung der negativen Binomialverteilung erfolgt in Bezug auf die mittlere Anzahl der Misserfolge \(\mu\), um \(n\) Erfolge zu erzielen. Der Mittelwert \(\mu\) steht zur Erfolgswahrscheinlichkeit in folgender Beziehung:
\[p = \frac{n}{n + \mu}\]Die Anzahl der Erfolge \(n\) kann auch in Form eines "Dispersion", "Heterogenitäts" oder "Aggregations" Parameters \(\alpha\) angegeben werden, der den Mittelwert \(\mu\) mit der Varianz \(\sigma^2\) in Beziehung setzt, z. B. \(\sigma^2 = \mu + \alpha \mu^2\). Unabhängig von der für \(\alpha\) verwendeten Konvention gilt:
\[\begin{split}p &= \frac{\mu}{\sigma^2} \\ n &= \frac{\mu^2}{\sigma^2 - \mu}\end{split}\]Diese Verteilung verwendet Routinen aus der Boost Math C++-Bibliothek für die Berechnung der Methoden
pmf,cdf,sf,ppf,isfundstats. [1]Die obige Wahrscheinlichkeitsfunktion ist in der "standardisierten" Form definiert. Zum Verschieben der Verteilung verwenden Sie den Parameter
loc. Insbesondere istnbinom.pmf(k, n, p, loc)identisch gleichnbinom.pmf(k - loc, n, p).Referenzen
[1]The Boost Developers. “Boost C++ Libraries”. https://www.boost.org/.
Beispiele
>>> import numpy as np >>> from scipy.stats import nbinom >>> import matplotlib.pyplot as plt >>> fig, ax = plt.subplots(1, 1)
Ermitteln Sie den Träger (Support)
>>> n, p = 5, 0.5 >>> lb, ub = nbinom.support(n, p)
Berechnen Sie die ersten vier Momente
>>> mean, var, skew, kurt = nbinom.stats(n, p, moments='mvsk')
Anzeigen der Wahrscheinlichkeitsmassenfunktion (
pmf)>>> x = np.arange(nbinom.ppf(0.01, n, p), ... nbinom.ppf(0.99, n, p)) >>> ax.plot(x, nbinom.pmf(x, n, p), 'bo', ms=8, label='nbinom pmf') >>> ax.vlines(x, 0, nbinom.pmf(x, n, p), colors='b', lw=5, alpha=0.5)
Alternativ kann das Verteilungsobjekt (als Funktion) aufgerufen werden, um die Form und den Ort festzulegen. Dies gibt ein „eingefrorenes“ RV-Objekt zurück, das die angegebenen Parameter beibehält.
Die Verteilung einfrieren und die eingefrorene
pmfanzeigen>>> rv = nbinom(n, p) >>> ax.vlines(x, 0, rv.pmf(x), colors='k', linestyles='-', lw=1, ... label='frozen pmf') >>> ax.legend(loc='best', frameon=False) >>> plt.show()
Überprüfen Sie die Genauigkeit von
cdfundppf>>> prob = nbinom.cdf(x, n, p) >>> np.allclose(x, nbinom.ppf(prob, n, p)) True
Generieren Sie Zufallszahlen
>>> r = nbinom.rvs(n, p, size=1000)