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