我有一个数据集,其中包含非常小的值,因此当你试图计算协方差矩阵时,你会得出NAN值。当我能够在计算中缩放那些非常小的值时,我应该如何更改数据?
我正在使用MATLAB,但任何其他选择也可以。
从注释中可以清楚地看出,问题不是小值,而是数据中的NaN。如果您有统计工具箱,则可以使用nancov
,它会忽略包含NaN的观测值(行)。如果没有,实现起来很简单:
cov(x(~any(isnan(x), 2), :))
如果您的数据中有许多NaN,如果您分别计算每对变量的协方差,并排除仅针对给定变量对包含NaN的行,则可能会更好地估计协方差矩阵。然而,这种方法的缺点是所得矩阵可能不再是正定的。