scipy.stats.Covariance.

from_cholesky#

статический Ковариация.from_cholesky(cholesky)[источник]#

Представление ковариации через (нижний) фактор Холецкого

Параметры:
choleskyarray_like

Нижний треугольный множитель Холецкого ковариационной матрицы.

Примечания

Пусть ковариационная матрица будет \(A\) и \(L\) будет нижним фактором Холецкого таким, что \(L L^T = A\). Отбеливание точки данных \(x\) выполняется путем вычисления \(L^{-1} x\). \(\log\det{A}\) рассчитывается как \(2tr(\log{L})\), где \(\log\) операция выполняется поэлементно.

Это Covariance класс не поддерживает сингулярные ковариационные матрицы, потому что разложение Холецкого не существует для сингулярной ковариационной матрицы.

Примеры

Подготовить симметричную положительно определённую ковариационную матрицу A и точка данных x.

>>> 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)

Perform the Cholesky decomposition of A и создать Covariance объект.

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

Сравните функциональность Covariance объект против эталонной реализации.

>>> 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