2011-09-16 64 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