scipy.stats.

协方差#

class scipy.stats.Covariance[源代码][源代码]#

协方差矩阵的表示

涉及协方差矩阵的计算(例如数据白化、多元正态函数评估)通常使用协方差矩阵的分解而不是协方差矩阵本身来更高效地执行。此类允许用户使用几种分解中的任何一种构建表示协方差矩阵的对象,并使用通用接口执行计算。

备注

Covariance 类不能直接实例化。相反,请使用其中一个工厂方法(例如 Covariance.from_diagonal)。

属性:
covariance

协方差矩阵的显式表示

log_pdet

协方差矩阵伪行列式的日志

rank

协方差矩阵的秩

shape

协方差数组的形状

方法

colorize(x)

对数据执行着色转换。

from_cholesky(cholesky)

通过(下)Cholesky 因子提供的协方差表示

from_diagonal(diagonal)

从对角线返回协方差矩阵的表示。

from_eigendecomposition(eigendecomposition)

通过特征分解提供的协方差表示

from_precision(precision[, covariance])

从精度矩阵返回协方差的表示。

whiten(x)

对数据执行白化变换。

示例

Covariance 类通过调用其工厂方法之一来创建一个 Covariance 对象,然后将该 Covariance 矩阵的表示作为多元分布的形状参数传递。

例如,多元正态分布可以接受一个表示协方差矩阵的数组:

>>> from scipy import stats
>>> import numpy as np
>>> d = [1, 2, 3]
>>> A = np.diag(d)  # a diagonal covariance matrix
>>> x = [4, -2, 5]  # a point of interest
>>> dist = stats.multivariate_normal(mean=[0, 0, 0], cov=A)
>>> dist.pdf(x)
4.9595685102808205e-08

但是这些计算是以一种非常通用的方式进行的,没有利用协方差矩阵的任何特殊性质。因为我们的协方差矩阵是对角矩阵,我们可以使用 Covariance.from_diagonal 来创建一个表示协方差矩阵的对象,而 multivariate_normal 可以利用这个对象来更高效地计算概率密度函数。

>>> cov = stats.Covariance.from_diagonal(d)
>>> dist = stats.multivariate_normal(mean=[0, 0, 0], cov=cov)
>>> dist.pdf(x)
4.9595685102808205e-08