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