Kovarianz#
- class scipy.stats.Covariance[Quelle]#
Darstellung einer Kovarianzmatrix
Berechnungen, die Kovarianzmatrizen beinhalten (z. B. Datenaufhellung, Auswertung der multivariaten Normalverteilung), werden oft effizienter durchgeführt, indem eine Zerlegung der Kovarianzmatrix anstelle der Kovarianzmatrix selbst verwendet wird. Diese Klasse ermöglicht es dem Benutzer, ein Objekt zu erstellen, das eine Kovarianzmatrix mittels verschiedener Zerlegungen darstellt, und Berechnungen über eine gemeinsame Schnittstelle durchzuführen.
Hinweis
Die Klasse
Covariancekann nicht direkt instanziiert werden. Verwenden Sie stattdessen eine der Factory-Methoden (z. B.Covariance.from_diagonal).- Attribute:
covarianceExplizite Darstellung der Kovarianzmatrix
log_pdetLogarithmus der Pseudo-Determinante der Kovarianzmatrix
rankRang der Kovarianzmatrix
shapeForm der Kovarianz-Arrays
Methoden
colorize(x)Führt eine "Colorizing"-Transformation auf Daten durch.
from_cholesky(cholesky)Darstellung einer Kovarianz, die über den (unteren) Cholesky-Faktor bereitgestellt wird
from_diagonal(diagonal)Gibt eine Darstellung einer Kovarianzmatrix aus ihrer Diagonalen zurück.
from_eigendecomposition(eigendecomposition)Darstellung einer Kovarianz, die über eine Eigenwertzerlegung bereitgestellt wird
from_precision(precision[, covariance])Gibt eine Darstellung einer Kovarianzmatrix aus ihrer Präzisionsmatrix zurück.
whiten(x)Führt eine "Whitening"-Transformation auf Daten durch.
Beispiele
Die Klasse
Covariancewird verwendet, indem eine ihrer Factory-Methoden aufgerufen wird, um ein Objekt vom TypCovariancezu erstellen. Anschließend wird diese Darstellung derCovariance-Matrix als Formparameter einer multivariaten Verteilung übergeben.Zum Beispiel kann die multivariate Normalverteilung ein Array akzeptieren, das eine Kovarianzmatrix darstellt
>>> from scipy import stats >>> import numpy as np >>> d = [1, 2, 3] >>> A = np.diag(d) # a diagonal covariance matrix >>> x = [4, -2, 5] # a point of interest >>> dist = stats.multivariate_normal(mean=[0, 0, 0], cov=A) >>> dist.pdf(x) 4.9595685102808205e-08
aber die Berechnungen werden auf eine sehr generische Weise durchgeführt, die keine Vorteile aus besonderen Eigenschaften der Kovarianzmatrix zieht. Da unsere Kovarianzmatrix diagonal ist, können wir
Covariance.from_diagonalverwenden, um ein Objekt zu erstellen, das die Kovarianzmatrix darstellt, undmultivariate_normalkann dies verwenden, um die Wahrscheinlichkeitsdichtefunktion effizienter zu berechnen.>>> cov = stats.Covariance.from_diagonal(d) >>> dist = stats.multivariate_normal(mean=[0, 0, 0], cov=cov) >>> dist.pdf(x) 4.9595685102808205e-08