r - 具有多个二进制变量的相关矩阵
问题描述
我有一些二分变量(大约 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 帧,而不是多个变量。
有没有办法将几个二进制变量相互关联并使用矩阵表示它们?
非常感谢您的回答!
解决方案
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
推荐阅读
- javascript - HTML5 Canvas 文本中支持的字体
- r - 具有多个组 + 点 + 计数的箱线图
- docker - Golang Docker API:获取事件
- linux - 如果为空,则编辑列的值
- ios - 如何确定用户使用应用程序的时间(swift4)
- jdbc - Netbeans 添加 Derby 驱动程序
- javascript - 如何从外部调用 highcharts 按钮
- python - 使用循环将多个数据框从上到下合并到单个工作表中
- ios - 如何:在发布 iOS 应用程序时安全地存储秘密令牌 (Nativescript)
- scala - 火花在多节点上将镶木地板写入HDFS非常慢