2011-09-16 31 views
17

我有大量缺失值的巨大矩阵。我想获得变量之间的关联。处理相关性计算的缺失值

是解决

cor(na.omit(matrix)) 

比低于更好?

cor(matrix, use = "pairwise.complete.obs") 

我已经选择了只有超过20%缺失值的变量。

2.哪种方法最合理?

回答

12

我会为第二个选项投票。听起来你有相当数量的缺失数据,所以你会寻找一个合理的多重填补策略来填补空间。请参阅Harrell的文章“回归建模策略”,获取关于“如何正确执行此操作”的丰富指导。

6

我认为第二个选项更有意义,

你可能会考虑使用rcorr功能在Hmisc包。

它速度很快,只包含两两完整的观测值。 返回的对象包含一个矩阵

    相关得分的
  1. 与用于每个相关值对于每个相关的p值的
  2. 的观测数

这意味着你可以忽略基于少量观察(无论该阈值适合于您)的相关值还是基于p值。

library(Hmisc) 
x<-matrix(nrow=10,ncol=10,data=runif(100)) 
x[x>0.5]<-NA 
result<-rcorr(x) 
result$r[result$n<5]<-0 # ignore less than five observations 
result$r