我在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)。
任何人都知道如何增强或替换缺失值?
谢谢之前。
答案 0 :(得分:2)
您期望什么,correlation衡量两个变量之间的线性相关性, 计算为协方差(变量一起变化多少)通过标准偏差归一化。
因此,如果一个变量是常数是没有意义的(你将零除以零,未定义并报告为NaN)......
答案 1 :(得分:0)
正如Amro所说,corr
正在报告正确的答案,这是未定义的。如果要以特殊方式处理未定义的方法,例如设置为1,则可以执行以下操作:
a(isnan(a)) = 1;
但听起来你的数据有一些更深层次的问题 - 没有足够的观察结果?为什么不删除相同的系列?