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 - 1 erfüllen, aber siehe Hinweise zur Verwendung der Methode rvs mit df < 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 eine RandomState- oder Generator-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

invwishart, chi2

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 wishart hat 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()
../../_images/scipy-stats-wishart-1_00_00.png

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.