2016-07-22 18 views
0
dat <- as.data.frame(replicate(100,sample(c(0,1),100,replace=TRUE))) 

これらの2進変数間の相関係数をエントリとして100×100の行列を作成したいとします。バイナリ変数の相関分析R

変数が連続していた場合は、cor()を使用して行列を作成します。方法としてピアソンとcor()が合理的であるかどうかはわかりません。そうでなければ、私は関数fn()を見つけて、バイナリベクトルのペア間の相関関係を計算することができると言ってください。 100 x 100マトリックスを構築する効率的な方法は何ですか?

+0

バイナリ変数とは何ですか?つまり、それらは潜在的に潜在的に分布する潜在変数を表すことができるだろうか? – user20650

答えて

0

これはスタックオーバーフローの回答ではありませんか。あなたが求めているのは、バイナリベクトル間の相関関係です。これはピアソンによって発見されたPhi coefficientと呼ばれています。

これはピアソン相関を小さな値に近似します。あなたは

sqrt(chisq.test(table(dat[,1],dat[,2]), correct=FALSE)$statistic/length(dat[,1])) 

を試してみて、近似が合理的に大きな値のためにかなり良いですので、これは、だから、40より大きい

を言っていることが

cor(dat[1], dat[2]) 

と同じ値0.08006408を与えることに気付くかもしれません、私はあなた自身の時間を節約し、単に解決策としてcor(dat)を使用することを主張するでしょう。