多くの欠損値を持つ巨大なマトリックスがあります。変数間の相関を取得したい。
1。は解決策ですか
cor(na.omit(matrix))
下より良い?
cor(matrix, use = "pairwise.complete.obs")
すでに20%を超える欠損値を持つ変数のみを選択しました。
2。どちらが理にかなった最良の方法ですか?
2番目のオプションに投票します。かなりの量のデータが欠落しているように聞こえるので、スペースを埋めるための賢明な多重代入戦略を探しているでしょう。 「これを適切に行う方法」に関する豊富なガイダンスについては、ハレルのテキスト「回帰モデリング戦略」を参照してください。
2番目のオプションの方が理にかなっていると思います。
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
将来の読者のために ペアワイズ完全相関は危険と見なされます は、cor(matrix, use = "pairwise.complete.obs")
が危険と見なされ、use = "complete.obs")
。