scipy.stats.Covariance.

from_cholesky#

static Covariance.from_cholesky(cholesky)[source]#

通過(下)Cholesky 因子提供的共變異數表示

參數:
choleskyarray_like

共變異數矩陣的下三角 Cholesky 因子。

註解

令共變異數矩陣為 \(A\)\(L\) 為下 Cholesky 因子,使得 \(L L^T = A\)。資料點 \(x\) 的白化處理通過計算 \(L^{-1} x\) 執行。\(\log\det{A}\) 計算為 \(2tr(\log{L})\),其中 \(\log\) 運算逐元素執行。

Covariance 類別不支援奇異共變異數矩陣,因為 Cholesky 分解對於奇異共變異數矩陣不存在。

範例

準備一個對稱正定共變異數矩陣 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)

執行 A 的 Cholesky 分解並建立 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