R中二元变量的相关分析

时间:2016-07-22 05:37:56

标签: r matrix statistics correlation

dat <- as.data.frame(replicate(100,sample(c(0,1),100,replace=TRUE)))

我想创建一个100乘100的矩阵,并将这些二进制变量之间的相关系数作为条目。

如果变量是连续的,那么我会使用cor()来创建矩阵。我不确定使用Pearson cor()作为方法是否合理。如果没有,说我可以找到一个函数fn()来计算一对二元向量之间的相关性。构建100乘100矩阵的有效方法是什么?

1 个答案:

答案 0 :(得分:1)

不确定这是否是堆栈溢出答案。你要问的是二元向量之间的相关性。这被称为Pearson发现的Phi coefficient

它近似于小值的Pearson相关性。你可以试试

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

并注意它提供与

相同的值0.08006408
cor(dat[1], dat[2]) 

这是因为对于相当大的值(例如大于40),近似值非常好。

所以,我主张节省一些时间,只使用cor(dat)作为解决方案。