我有大量缺失值的巨大矩陣。我想獲得變量之間的關聯。處理相關性計算的缺失值
是解決
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")
。