如何用MATLAB上的Pearson Correlation替换缺失值

时间:2010-12-28 11:42:11

标签: matlab nan pearson

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

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)是因为分母是ZERO(0)。 虽然,我们可以看到第3列和第4列的相似性是一(+1)。

任何人都知道如何增强或替换缺失值?

谢谢之前。

2 个答案:

答案 0 :(得分:2)

您期望什么,correlation衡量两个变量之间的线性相关性, 计算为协方差(变量一起变化多少)通过标准偏差归一化。

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

答案 1 :(得分:0)

正如Amro所说,corr正在报告正确的答案,这是未定义的。如果要以特殊方式处理未定义的方法,例如设置为1,则可以执行以下操作:

a(isnan(a)) = 1;

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