scipy.stats.Covariance.
from_cholesky#
- static Covariance.from_cholesky(cholesky)[源代码]#
通过(下)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