scipy.stats.

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 Covariance kann nicht direkt instanziiert werden. Verwenden Sie stattdessen eine der Factory-Methoden (z. B. Covariance.from_diagonal).

Attribute:
covariance

Explizite Darstellung der Kovarianzmatrix

log_pdet

Logarithmus der Pseudo-Determinante der Kovarianzmatrix

rank

Rang der Kovarianzmatrix

shape

Form 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 Covariance wird verwendet, indem eine ihrer Factory-Methoden aufgerufen wird, um ein Objekt vom Typ Covariance zu erstellen. Anschließend wird diese Darstellung der Covariance-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_diagonal verwenden, um ein Objekt zu erstellen, das die Kovarianzmatrix darstellt, und multivariate_normal kann 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