scipy.stats.wishart#
- scipy.stats.wishart = <scipy.stats._multivariate.wishart_gen Objekt>[Quelle]#
Eine Wishart-Zufallsvariable.
Das Schlüsselwort df spezifiziert den Freiheitsgrad. Das Schlüsselwort scale spezifiziert die Skalenmatrix, die symmetrisch und positiv definit sein muss. In diesem Zusammenhang wird die Skalenmatrix oft im Sinne einer multivariaten Normalverteilungs-Präzisionsmatrix (dem Kehrwert der Kovarianzmatrix) interpretiert. Diese Argumente müssen die Beziehung
df > scale.ndim - 1erfüllen, aber siehe Hinweise zur Verwendung der Methode rvs mitdf < scale.ndim.- Parameter:
- dfint
Freiheitsgrad, muss größer oder gleich der Dimension der Skalenmatrix sein
- scalearray_like
Symmetrische, positiv definite Skalenmatrix der Verteilung
- 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
pdf(x, df, scale)
Wahrscheinlichkeitsdichtefunktion.
logpdf(x, df, scale)
Logarithmus der Wahrscheinlichkeitsdichtefunktion.
rvs(df, scale, size=1, random_state=None)
Zufallsstichproben aus einer Wishart-Verteilung ziehen.
entropy()
Berechnet die differentielle Entropie der Wishart-Verteilung.
- Löst aus:
- scipy.linalg.LinAlgError
Wenn die Skalenmatrix scale nicht positiv definit ist.
Siehe auch
Hinweise
Die Skalenmatrix scale muss eine symmetrische, positiv definite Matrix sein. Singuläre Matrizen, einschließlich des symmetrischen, positiv semidefiniten Falls, werden nicht unterstützt. Symmetrie wird nicht geprüft; nur der untere Dreiecksteil wird verwendet.
Die Wishart-Verteilung wird oft bezeichnet als
\[W_p(\nu, \Sigma)\]wobei \(\nu\) der Freiheitsgrad und \(\Sigma\) die \(p \times p\) Skalenmatrix ist.
Die Wahrscheinlichkeitsdichtefunktion für
wisharthat einen Träger über positiv definite Matrizen \(S\); wenn \(S \sim W_p(\nu, \Sigma)\), dann ist ihre PDF gegeben durch\[f(S) = \frac{|S|^{\frac{\nu - p - 1}{2}}}{2^{ \frac{\nu p}{2} } |\Sigma|^\frac{\nu}{2} \Gamma_p \left ( \frac{\nu}{2} \right )} \exp\left( -tr(\Sigma^{-1} S) / 2 \right)\]Wenn \(S \sim W_p(\nu, \Sigma)\) (Wishart), dann \(S^{-1} \sim W_p^{-1}(\nu, \Sigma^{-1})\) (inverse Wishart).
Wenn die Skalenmatrix 1-dimensional und gleich eins ist, dann kollabiert die Wishart-Verteilung \(W_1(\nu, 1)\) zur \(\chi^2(\nu)\)-Verteilung.
Der vom rvs-Methode implementierte Algorithmus [2] kann numerisch singuläre Matrizen mit \(p - 1 < \nu < p\) erzeugen; der Benutzer sollte dies möglicherweise prüfen und gegebenenfalls Ersatzstichproben generieren.
Hinzugefügt in Version 0.16.0.
Referenzen
[1]M.L. Eaton, “Multivariate Statistics: A Vector Space Approach”, Wiley, 1983.
[2]W.B. Smith und R.R. Hocking, „Algorithm AS 53: Wishart Variate Generator“, Applied Statistics, Bd. 21, S. 341-345, 1972.
Beispiele
>>> import numpy as np >>> import matplotlib.pyplot as plt >>> from scipy.stats import wishart, chi2 >>> x = np.linspace(1e-5, 8, 100) >>> w = wishart.pdf(x, df=3, scale=1); w[:5] array([ 0.00126156, 0.10892176, 0.14793434, 0.17400548, 0.1929669 ]) >>> c = chi2.pdf(x, 3); c[:5] array([ 0.00126156, 0.10892176, 0.14793434, 0.17400548, 0.1929669 ]) >>> plt.plot(x, w) >>> plt.show()
Die Eingangsquantile können beliebige Array-Formen haben, solange die letzte Achse die Komponenten beschriftet.
Alternativ kann das Objekt (als Funktion) aufgerufen werden, um die Freiheitsgrad- und Skalenparameter zu fixieren, wodurch eine „eingefrorene“ Wishart-Zufallsvariable zurückgegeben wird
>>> rv = wishart(df=1, scale=1) >>> # Frozen object with the same methods but holding the given >>> # degrees of freedom and scale fixed.