【问题标题】:How to replace missing value with Pearson Correlation on MATLAB如何在 MATLAB 上用 Pearson 相关性替换缺失值
【发布时间】:2011-05-31 13:16:34
【问题描述】:

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

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

感谢之前。

【问题讨论】:

    标签: matlab nan pearson


    【解决方案1】:

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

    a(isnan(a)) = 1;
    

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • so,表示当变量为常数时,无法计算相关性。是否可以使用异常?顺便说一句,谢谢你的回答,这对我有很大帮助。
      猜你喜欢
      • 1970-01-01
      • 2011-04-07
      • 2019-02-15
      • 1970-01-01
      • 1970-01-01
      • 2016-05-09
      • 1970-01-01
      • 1970-01-01
      • 2020-01-04
      相关资源
      最近更新 更多