关于 nan:如何在 MATLAB 上用 Pearson Correlation 替换缺失值

How to replace missing value with Pearson Correlation on MATLAB

我在 MATLAB 中使用"corr"函数时遇到问题,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
a =

     1     4     3     2
     2     3     3     2
     3     2     3     2
     4     1     3     2

>> corr(a)

ans =

     1    -1   NaN   NaN
    -1     1   NaN   NaN
   NaN   NaN   NaN   NaN
   NaN   NaN   NaN   NaN

当我手动计算时,缺失值 (NaN) 是因为分母为零 (0)。
虽然,我们可以看到第 3 列和第 4 列的相似度为 ONE ( 1)。

有人知道如何增强或替换缺失值吗?

感谢之前。


您期望什么,相关性是衡量两个变量之间线性相关性的指标,
计算为由标准差归一化的协方差(变量一起变化的程度)。

因此,如果一个变量是恒定的(你得到零除以未定义并报告为 NaN 的零)是没有意义的...


正如 Amro 所说,corr 报告的是未定义的正确答案。如果您想以特殊方式处理未定义,例如设置为 1,您可以这样做:

1
a(isnan(a)) = 1;

但听起来您的数据存在一些更深层次的问题 - 没有足够的观察?为什么不删除相同的系列?