Del*_*ine 30 r missing-data correlation na
我有一个巨大的矩阵,有很多缺失值.我想获得变量之间的相关性.
1.解决方案
cor(na.omit(matrix))
Run Code Online (Sandbox Code Playgroud)
比下面好吗?
cor(matrix, use = "pairwise.complete.obs")
Run Code Online (Sandbox Code Playgroud)
我已经选择了只有超过20%缺失值的变量.
2.哪种方法最有意义?
42-*_*42- 16
我会投票给第二个选项.听起来你有相当数量的缺失数据,所以你会寻找一个合理的多重插补策略来填补空间.请参阅Harrell的文章"回归建模策略",获取有关"如何正确执行此操作"的大量指导.
Iai*_*ain 12
我认为第二种选择更有意义,
您可以考虑在Hmisc包中使用rcorr功能.
它非常快,只包括成对完整的观察.返回的对象包含一个矩阵
这意味着您可以基于少量观察(无论该阈值适合您)或基于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
Run Code Online (Sandbox Code Playgroud)