2.6. 协方差估计#
许多统计问题都需要估计总体的协方差矩阵,这可以看作是对数据集散点图形状的估计。大多数情况下,这种估计必须在一个样本上完成,而样本的属性(大小、结构、同质性)对估计质量有很大影响。sklearn.covariance
包提供了在各种设置下准确估计总体协方差矩阵的工具。
我们假设观测值是独立同分布的 (i.i.d.)。
2.6.1. 经验协方差#
已知数据集的协方差矩阵可以通过经典的*最大似然估计器*(或“经验协方差”)很好地近似,前提是观测值数量相对于特征数量(描述观测值的变量)足够大。更准确地说,样本的最大似然估计器是对应总体协方差矩阵的渐近无偏估计器。
样本的经验协方差矩阵可以使用包中的 empirical_covariance
函数计算,或者通过使用 EmpiricalCovariance.fit
方法将 EmpiricalCovariance
对象拟合到数据样本。请注意,结果取决于数据是否居中,因此可能需要准确使用 assume_centered
参数。更具体地说,如果 assume_centered=False
,则测试集应与训练集具有相同的均值向量。否则,两者都应由用户居中,并且应使用 assume_centered=True
。
示例
有关如何将
EmpiricalCovariance
对象拟合到数据的示例,请参阅收缩协方差估计:LedoitWolf vs OAS 与最大似然。
2.6.2. 收缩协方差#
2.6.2.1. 基本收缩#
尽管最大似然估计器是协方差矩阵的渐近无偏估计器,但它并不是协方差矩阵特征值的良好估计器,因此通过其逆运算得到的精度矩阵不准确。有时,甚至会因为数值原因导致经验协方差矩阵无法求逆。为了避免这种求逆问题,引入了一种经验协方差矩阵的变换:收缩(shrinkage)
。
在 scikit-learn 中,这种变换(带有用户定义的收缩系数)可以通过 shrunk_covariance
方法直接应用于预计算的协方差。此外,协方差的收缩估计器可以通过 ShrunkCovariance
对象及其 ShrunkCovariance.fit
方法拟合到数据。同样,结果取决于数据是否居中,因此可能需要准确使用 assume_centered
参数。
数学上,这种收缩在于减小经验协方差矩阵的最小和最大特征值之间的比率。这可以通过简单地根据给定的偏移量平移每个特征值来实现,这等效于找到协方差矩阵的 l2 惩罚最大似然估计器。实际上,收缩归结为一个简单的凸变换:\(\Sigma_{\rm shrunk} = (1-\alpha)\hat{\Sigma} + \alpha\frac{{\rm Tr}\hat{\Sigma}}{p}\rm Id\)。
选择收缩量 \(\alpha\) 相当于设置偏差/方差权衡,这将在下面讨论。
示例
有关如何将
ShrunkCovariance
对象拟合到数据的示例,请参阅收缩协方差估计:LedoitWolf vs OAS 与最大似然。
2.6.2.2. Ledoit-Wolf 收缩#
在他们2004年的论文[1]中,O. Ledoit 和 M. Wolf 提出了一个公式来计算最优收缩系数 \(\alpha\),该系数能使估计协方差矩阵与真实协方差矩阵之间的均方误差最小化。
协方差矩阵的 Ledoit-Wolf 估计器可以使用 sklearn.covariance
包中的 ledoit_wolf
函数在样本上计算,或者通过将 LedoitWolf
对象拟合到同一样本来获得。
注意
总体协方差矩阵为各向同性时的情况
值得注意的是,当样本数量远大于特征数量时,通常预期不需要收缩。其直觉在于,如果总体协方差是满秩的,那么随着样本数量的增加,样本协方差也将变为正定。因此,不需要收缩,方法应该自动完成这一点。
然而,在 Ledoit-Wolf 过程中,当总体协方差恰好是单位矩阵的倍数时,情况并非如此。在这种情况下,随着样本数量的增加,Ledoit-Wolf 收缩估计值接近 1。这表明,在 Ledoit-Wolf 意义上,协方差矩阵的最优估计是单位矩阵的倍数。由于总体协方差已经是单位矩阵的倍数,因此 Ledoit-Wolf 解决方案确实是一个合理的估计。
示例
有关如何将
LedoitWolf
对象拟合到数据以及可视化 Ledoit-Wolf 估计器在似然方面的性能的示例,请参阅收缩协方差估计:LedoitWolf vs OAS 与最大似然。
参考文献
2.6.2.3. Oracle 近似收缩(OAS)#
在数据服从高斯分布的假设下,Chen 等人 [2] 推导出了一个旨在选择收缩系数的公式,该系数能产生比 Ledoit 和 Wolf 公式给出的更小的均方误差。由此产生的估计器被称为 Oracle 近似收缩协方差估计器。
协方差矩阵的 OAS 估计器可以使用 sklearn.covariance
包中的 oas
函数在样本上计算,或者通过将 OAS
对象拟合到同一样本来获得。

设置收缩时的偏差-方差权衡:Ledoit-Wolf 和 OAS 估计器选择的比较#
参考文献
示例
有关如何将
OAS
对象拟合到数据的示例,请参阅收缩协方差估计:LedoitWolf vs OAS 与最大似然。要可视化
LedoitWolf
和OAS
协方差估计器之间的均方误差差异,请参阅Ledoit-Wolf vs OAS 估计。

2.6.3. 稀疏逆协方差#
协方差矩阵的逆矩阵,通常称为精度矩阵,与偏相关矩阵成比例。它表示偏独立关系。换句话说,如果两个特征在给定其他特征的条件下是独立的,则精度矩阵中对应的系数将为零。这就是为什么估计稀疏精度矩阵有意义的原因:通过从数据中学习独立关系,可以更好地条件化协方差矩阵的估计。这被称为*协方差选择*。
在小样本情况下,即 n_samples
与 n_features
数量级相同或更小,稀疏逆协方差估计器往往比收缩协方差估计器表现更好。然而,在相反的情况下,或者对于高度相关的数据,它们可能会出现数值不稳定。此外,与收缩估计器不同,稀疏估计器能够恢复非对角结构。
GraphicalLasso
估计器使用 l1 惩罚来强制精度矩阵的稀疏性:其 alpha
参数越高,精度矩阵越稀疏。相应的 GraphicalLassoCV
对象使用交叉验证自动设置 alpha
参数。

在极小样本设置下,最大似然、收缩和稀疏协方差及精度矩阵估计的比较。#
注意
结构恢复
从数据中的相关性恢复图形结构是一项具有挑战性的任务。如果您对此类恢复感兴趣,请记住
从相关矩阵中恢复比从协方差矩阵中恢复更容易:在运行
GraphicalLasso
之前对您的观测值进行标准化如果底层图的某些节点的连接数远多于平均节点,则算法会遗漏其中一些连接。
如果您的观测值数量相对于底层图中的边数不够大,您将无法恢复它。
即使您处于有利的恢复条件下,通过交叉验证选择的 alpha 参数(例如使用
GraphicalLassoCV
对象)也会导致选择过多的边。然而,相关的边将比不相关的边具有更重的权重。
数学公式如下
其中 \(K\) 是待估计的精度矩阵,\(S\) 是样本协方差矩阵。\(\|K\|_1\) 是 \(K\) 的非对角系数绝对值之和。用于解决此问题的算法是 GLasso 算法,源自 Friedman 2008 年的生物统计学论文。它与 R 语言 glasso
包中的算法相同。
示例
参考文献
Friedman et al, “Sparse inverse covariance estimation with the graphical lasso”, Biostatistics 9, pp 432, 2008
2.6.4. 鲁棒协方差估计#
真实数据集经常受到测量或记录错误的影响。由于各种原因,也可能出现常规但不常见的观测值。非常不常见的观测值被称为异常值。上述经验协方差估计器和收缩协方差估计器对数据中异常值的存在非常敏感。因此,应该使用鲁棒协方差估计器来估计真实数据集的协方差。此外,鲁棒协方差估计器还可以用于执行异常值检测,并根据数据的进一步处理来丢弃/降低某些观测值的权重。
此 sklearn.covariance
包实现了一个鲁棒的协方差估计器:最小协方差行列式(Minimum Covariance Determinant)[3]。
2.6.4.1. 最小协方差行列式(MCD)#
最小协方差行列式估计器是 P.J. Rousseeuw 在 [3] 中引入的一种鲁棒的数据集协方差估计器。其思想是找到给定比例 (h) 的“良好”观测值(即非异常值),并计算它们的经验协方差矩阵。然后对这个经验协方差矩阵进行重新缩放,以补偿所进行的观测值选择(“一致性步骤”)。计算出最小协方差行列式估计器后,可以根据观测值的马氏距离赋予其权重,从而得到数据集协方差矩阵的重加权估计(“重加权步骤”)。
Rousseeuw 和 Van Driessen [4] 开发了 FastMCD 算法以计算最小协方差行列式。scikit-learn 在将 MCD 对象拟合到数据时使用此算法。FastMCD 算法同时还计算数据集位置的鲁棒估计。
原始估计可以通过 MinCovDet
鲁棒协方差估计器对象的 raw_location_
和 raw_covariance_
属性访问。
参考文献
P. J. Rousseeuw. Least median of squares regression. J. Am Stat Ass, 79:871, 1984.
A Fast Algorithm for the Minimum Covariance Determinant Estimator, 1999, American Statistical Association and the American Society for Quality, TECHNOMETRICS.
示例
有关如何将
MinCovDet
对象拟合到数据并查看尽管存在异常值但估计仍保持准确的示例,请参阅鲁棒与经验协方差估计。要可视化
EmpiricalCovariance
和MinCovDet
协方差估计器在马氏距离方面的差异(因此我们也可以更好地估计精度矩阵),请参阅鲁棒协方差估计和马氏距离相关性。