44

欠測値がたくさんある巨大な行列があります。変数間の相関関係を取得したい。

1.解決策はあり ますか

cor(na.omit(matrix))

以下より良いですか?

cor(matrix, use = "pairwise.complete.obs")

欠測値が20%を超える変数のみをすでに選択しています。

2.意味をなすための最良の方法はどれですか?

4

3 に答える 3

19

私は2番目のオプションに投票します。かなりの量の欠測データがあるように思われるので、スペースを埋めるための賢明な多重代入戦略を探しているでしょう。これを適切に行う方法に関する豊富なガイダンスについては、ハレルのテキスト「回帰モデリング戦略」を参照してください。

于 2011-09-16T13:49:22.490 に答える
14

2番目のオプションの方が理にかなっていると思います。

Hmiscパッケージのrcorr関数の使用を検討してください。

これは非常に高速で、ペアごとの完全な観測のみが含まれます。返されたオブジェクトには行列が含まれています

  1. 相関スコアの
  2. 各相関値に使用された観測数
  3. 各相関のp値の

これは、少数の観測値(そのしきい値が何であれ)または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
于 2011-09-18T09:10:51.630 に答える