首页 > 解决方案 > 具有多个二进制变量的相关矩阵

问题描述

我有一些二分变量(大约 15 个)要相互关联。

为了简单起见,我将使用一个类似的、更简单的数据集来描述我的问题。

假设我们有一个包含 5 个变量的数据框

var1 <- c(1,0,0,1,NA,1,0,0,1,NA)
var2 <- c(1,NA,1,1,NA,1,NA,1,1,NA)
var3 <- c(NA,0,0,1,NA,NA,0,0,1,NA)
var4 <- c(0,0,0,NA,1,0,0,0,NA,1)
var5 <- c(1,1,0,1,NA,1,1,0,1,NA)

DF <- data.frame(var1, var2, var3, var4, var5)

因为我只有二进制变量,所以我不能使用 pearson 相关性。

我已经读过,卡方检验或 phi 相关性适合我的问题,但我只找到了带有 2 个变量的指令。2x2 帧,而不是多个变量。

有没有办法将几个二进制变量相互关联并使用矩阵表示它们?

非常感谢您的回答!

标签: rmatrixbinarycorrelation

解决方案


phi 的值等于相关性,因此您可以使用 cor 来获取它。

cor(var1, var5, "pair")
## [1] 0.5773503

library(psych)
phi(table(var1, var5), 7)
## [1] 0.5773503

cor(DF, use = "pair")
##           var1 var2 var3 var4      var5
## var1 1.0000000   NA  1.0   NA 0.5773503
## var2        NA   NA   NA   NA        NA
## var3 1.0000000   NA  1.0   NA 0.5000000
## var4        NA   NA   NA    1        NA
## var5 0.5773503   NA  0.5   NA 1.0000000
## Warning message:
## In cor(DF, use = "pair") : the standard deviation is zero

推荐阅读