from_precision#
- static Covariance.from_precision(precision, covariance=None)[Quelle]#
Gibt eine Darstellung der Kovarianz aus ihrer Präzisionsmatrix zurück.
- Parameter:
- precisionarray_like
Die Präzisionsmatrix; das heißt, die Inverse einer quadratischen, symmetrischen, positiv definiten Kovarianzmatrix.
- covariancearray_like, optional
Die quadratische, symmetrische, positiv definite Kovarianzmatrix. Wenn nicht angegeben, muss diese möglicherweise berechnet werden (z. B. um die kumulative Verteilungsfunktion von
scipy.stats.multivariate_normalauszuwerten), indem precision invertiert wird.
Hinweise
Sei die Kovarianzmatrix \(A\), ihre Präzisionsmatrix \(P = A^{-1}\) und \(L\) sei der untere Cholesky-Faktor, so dass \(L L^T = P\). Das Whitening eines Datenpunkts \(x\) wird durch die Berechnung von \(x^T L\) durchgeführt. \(\log\det{A}\) wird als \(-2tr(\log{L})\) berechnet, wobei die \(\log\)-Operation elementweise durchgeführt wird.
Diese
Covariance-Klasse unterstützt keine singulären Kovarianzmatrizen, da die Präzisionsmatrix für eine singuläre Kovarianzmatrix nicht existiert.Beispiele
Bereiten Sie eine symmetrische, positiv definite Präzisionsmatrix
Pund einen Datenpunktxvor. (Wenn die Präzisionsmatrix nicht bereits verfügbar ist, beachten Sie die anderen Factory-Methoden derCovariance-Klasse.)>>> import numpy as np >>> from scipy import stats >>> rng = np.random.default_rng() >>> n = 5 >>> P = rng.random(size=(n, n)) >>> P = P @ P.T # a precision matrix must be positive definite >>> x = rng.random(size=n)
Erstellen Sie das
Covariance-Objekt.>>> cov = stats.Covariance.from_precision(P)
Vergleichen Sie die Funktionalität des
Covariance-Objekts mit Referenzimplementierungen.>>> res = cov.whiten(x) >>> ref = x @ np.linalg.cholesky(P) >>> np.allclose(res, ref) True >>> res = cov.log_pdet >>> ref = -np.linalg.slogdet(P)[-1] >>> np.allclose(res, ref) True