scipy.stats.multivariate_hypergeom#
- scipy.stats.multivariate_hypergeom = <scipy.stats._multivariate.multivariate_hypergeom_gen object>[Quelle]#
Eine multivariate hypergeometrische Zufallsvariable.
- Parameter:
- marray_like
Die Anzahl jedes Objekttyps in der Grundgesamtheit. Das heißt, \(m[i]\) ist die Anzahl der Objekte vom Typ \(i\).
- narray_like
Die Anzahl der aus der Grundgesamtheit gezogenen Stichproben.
- seed{None, int, np.random.RandomState, np.random.Generator}, optional
Wird zum Ziehen von Zufallsvarianten verwendet. Wenn seed None ist, wird die RandomState Singleton verwendet. Wenn seed eine Ganzzahl ist, wird eine neue
RandomState-Instanz verwendet, die mit seed initialisiert wird. Wenn seed bereits eineRandomState- oderGenerator-Instanz ist, wird dieses Objekt verwendet. Standard ist None.
Methoden
pmf(x, m, n)
Wahrscheinlichkeitsmassenfunktion.
logpmf(x, m, n)
Logarithmus der Wahrscheinlichkeitsmassenfunktion.
rvs(m, n, size=1, random_state=None)
Zufällige Stichproben aus einer multivariaten hypergeometrischen Verteilung ziehen.
mean(m, n)
Mittelwert der multivariaten hypergeometrischen Verteilung.
var(m, n)
Varianz der multivariaten hypergeometrischen Verteilung.
cov(m, n)
Berechnet die Kovarianzmatrix der multivariaten hypergeometrischen Verteilung.
Siehe auch
scipy.stats.hypergeomDie hypergeometrische Verteilung.
scipy.stats.multinomialDie multinomiale Verteilung.
Hinweise
m muss ein Array positiver Ganzzahlen sein. Wenn das Quantil \(i\) Werte außerhalb des Bereichs \([0, m_i]\) enthält, wobei \(m_i\) die Anzahl der Objekte des Typs \(i\) in der Grundgesamtheit ist, oder wenn die Parameter inkonsistent zueinander sind (z. B.
x.sum() != n), geben die Methoden den entsprechenden Wert zurück (z. B.0fürpmf). Wenn m oder n negative Werte enthalten, enthält das Ergebnis dortnan.Die Wahrscheinlichkeitsmassenfunktion für
multivariate_hypergeomist\[\begin{split}P(X_1 = x_1, X_2 = x_2, \ldots, X_k = x_k) = \frac{\binom{m_1}{x_1} \binom{m_2}{x_2} \cdots \binom{m_k}{x_k}}{\binom{M}{n}}, \\ \quad (x_1, x_2, \ldots, x_k) \in \mathbb{N}^k \text{ mit } \sum_{i=1}^k x_i = n\end{split}\]wobei \(m_i\) die Anzahl der Objekte vom Typ \(i\) ist, \(M\) die Gesamtzahl der Objekte in der Grundgesamtheit ist (Summe aller \(m_i\)) und \(n\) die Größe der aus der Grundgesamtheit zu ziehenden Stichprobe ist.
Hinzugefügt in Version 1.6.0.
Referenzen
[1]Die multivariate hypergeometrische Verteilung, http://www.randomservices.org/random/urn/MultiHypergeometric.html
[2]Thomas J. Sargent und John Stachurski, 2020, Multivariate Hypergeometric Distribution https://python.quantecon.org/multi_hyper.html
Beispiele
Um die Wahrscheinlichkeitsmassenfunktion der multivariaten hypergeometrischen Verteilung mit einer dichotomischen Grundgesamtheit der Größe \(10\) und \(20\) bei einer Stichprobengröße von \(12\) mit \(8\) Objekten des ersten Typs und \(4\) Objekten des zweiten Typs auszuwerten, verwenden Sie
>>> from scipy.stats import multivariate_hypergeom >>> multivariate_hypergeom.pmf(x=[8, 4], m=[10, 20], n=12) 0.0025207176631464523
Die
multivariate_hypergeom-Verteilung ist identisch mit der entsprechendenhypergeom-Verteilung (abgesehen von winzigen numerischen Unterschieden), wenn nur zwei Arten (gut und schlecht) von Objekten in der Grundgesamtheit vorhanden sind, wie im obigen Beispiel. Betrachten Sie ein weiteres Beispiel zum Vergleich mit der hypergeometrischen Verteilung>>> from scipy.stats import hypergeom >>> multivariate_hypergeom.pmf(x=[3, 1], m=[10, 5], n=4) 0.4395604395604395 >>> hypergeom.pmf(k=3, M=15, n=4, N=10) 0.43956043956044005
Die Funktionen
pmf,logpmf,mean,var,covundrvsunterstützen Broadcasting, unter der Konvention, dass die Vektorparameter (x,mundn) so interpretiert werden, als ob jede Zeile entlang der letzten Achse ein einzelnes Objekt darstellt. Beispielsweise können wir die beiden vorherigen Aufrufe vonmultivariate_hypergeomwie folgt kombinieren:>>> multivariate_hypergeom.pmf(x=[[8, 4], [3, 1]], m=[[10, 20], [10, 5]], ... n=[12, 4]) array([0.00252072, 0.43956044])
Dieses Broadcasting funktioniert auch für
cov, wobei die Ausgabeobjekte quadratische Matrizen der Größem.shape[-1]sind. Zum Beispiel:>>> multivariate_hypergeom.cov(m=[[7, 9], [10, 15]], n=[8, 12]) array([[[ 1.05, -1.05], [-1.05, 1.05]], [[ 1.56, -1.56], [-1.56, 1.56]]])
Das heißt,
result[0]ist gleichmultivariate_hypergeom.cov(m=[7, 9], n=8)undresult[1]ist gleichmultivariate_hypergeom.cov(m=[10, 15], n=12).Alternativ kann das Objekt (als Funktion) aufgerufen werden, um die Parameter m und n festzulegen, wodurch eine "eingefrorene" multivariate hypergeometrische Zufallsvariable zurückgegeben wird.
>>> rv = multivariate_hypergeom(m=[10, 20], n=12) >>> rv.pmf(x=[8, 4]) 0.0025207176631464523