非正定协方差矩阵告诉我关于我的数据的什么信息?

机器算法验证 正态分布 多元分析 协方差
2022-02-03 14:11:32

我有许多多变量观察结果,并想评估所有变量的概率密度。假设数据是正态分布的。在变量数量较少的情况下,一切都按我的预期工作,但移动到更大的数量会导致协方差矩阵变得非正定。

我已将 Matlab 中的问题简化为:

load raw_data.mat; % matrix number-of-values x number of variables
Sigma = cov(data);
[R,err] = cholcov(Sigma, 0); % Test for pos-def done in mvnpdf.

如果 err>0 则 Sigma 不是正定的。

为了在更高维度上评估我的实验数据,我能做些什么吗?它是否告诉我有关我的数据的任何有用信息?

我在这方面有点初学者,所以如果我错过了一些明显的东西,我深表歉意。

3个回答

协方差矩阵不是正定的,因为它是奇异的。这意味着您的至少一个变量可以表示为其他变量的线性组合。您不需要所有变量,因为至少一个变量的值可以从其他变量的子集中确定。我建议按顺序添加变量并在每一步检查协方差矩阵。如果一个新变量创建了一个奇点,则将其丢弃并继续下一个。最终,您应该有一个具有正定协方差矩阵的变量子集。

我认为上面没有提到的一点是,即使您的变量不是完全线性相关,也可以从经验数据中计算出非正定协方差矩阵。如果您没有足够的数据(特别是如果您试图从一堆成对比较中构建一个高维协方差矩阵)或者如果您的数据不遵循多元正态分布,那么您最终可能会出现矛盾的关系变量之间,如cov(A,B)>0;冠状病毒(A,C)>0;科夫(B,C)<0。

在这种情况下,无法拟合多元正态 PDF,因为不存在满足这些标准的多元正态分布 - cov(A,B)>0 和 cov(A,C)>0 必然意味着 cov(B,C )>0。

这就是说,非正定矩阵并不总是意味着您包含共线变量。它还可能表明您正在尝试对关系建模,鉴于您选择的参数结构,这是不可能的。

这是一个有效的结果。对协方差矩阵的该分量的估计为零,这很可能是真的!它可能会导致计算困难,但 R 中的一些算法(我不了解 Matlab)可以处理这个问题。我不明白为什么人们对此感到不安并坚持要拟合更简约的模型。