我有大量缺失值的巨大矩阵。我想获得变量之间的关联。处理相关性计算的缺失值
是解决
cor(na.omit(matrix))
比低于更好?
cor(matrix, use = "pairwise.complete.obs")
我已经选择了只有超过20%缺失值的变量。
2.哪种方法最合理?
我有大量缺失值的巨大矩阵。我想获得变量之间的关联。处理相关性计算的缺失值
是解决
cor(na.omit(matrix))
比低于更好?
cor(matrix, use = "pairwise.complete.obs")
我已经选择了只有超过20%缺失值的变量。
2.哪种方法最合理?
我会为第二个选项投票。听起来你有相当数量的缺失数据,所以你会寻找一个合理的多重填补策略来填补空间。请参阅Harrell的文章“回归建模策略”,获取关于“如何正确执行此操作”的丰富指导。
我认为第二个选项更有意义,
你可能会考虑使用rcorr功能在Hmisc包。
它速度很快,只包含两两完整的观测值。 返回的对象包含一个矩阵
这意味着你可以忽略基于少量观察(无论该阈值适合于您)的相关值还是基于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
对于未来的读者Pairwise-complete correlation considered dangerous可能是有价值的,认为cor(matrix, use = "pairwise.complete.obs")
被认为是危险的,并建议替代品,如use = "complete.obs")
。