scipy.stats.Covariance.

from_cholesky#

static Covariance.from_cholesky(cholesky)[Quelle]#

Repräsentation einer Kovarianz, die über den (unteren) Cholesky-Faktor bereitgestellt wird

Parameter:
choleskyarray_like

Der untere dreieckige Cholesky-Faktor der Kovarianzmatrix.

Hinweise

Sei die Kovarianzmatrix \(A\) und \(L\) der untere Cholesky-Faktor, so dass \(L L^T = A\). Die Weißung eines Datenpunkts \(x\) erfolgt durch die Berechnung von \(L^{-1} x\). \(\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 Cholesky-Zerlegung für eine singuläre Kovarianzmatrix nicht existiert.

Beispiele

Bereiten Sie eine symmetrische positiv definite Kovarianzmatrix A und einen Datenpunkt x vor.

>>> import numpy as np
>>> from scipy import stats
>>> rng = np.random.default_rng()
>>> n = 5
>>> A = rng.random(size=(n, n))
>>> A = A @ A.T  # make the covariance symmetric positive definite
>>> x = rng.random(size=n)

Führt die Cholesky-Zerlegung von A durch und erstellt das Covariance-Objekt.

>>> L = np.linalg.cholesky(A)
>>> cov = stats.Covariance.from_cholesky(L)

Vergleicht die Funktionalität des Covariance-Objekts mit einer Referenzimplementierung.

>>> from scipy.linalg import solve_triangular
>>> res = cov.whiten(x)
>>> ref = solve_triangular(L, x, lower=True)
>>> np.allclose(res, ref)
True
>>> res = cov.log_pdet
>>> ref = np.linalg.slogdet(A)[-1]
>>> np.allclose(res, ref)
True