检查R中数字和布尔值之间的相关性

时间:2012-09-19 13:50:26

标签: r correlation

我是R的初学者。我学会了如何检查数字数据之间的相关性。

但是我找不到有关如何检查数字和布尔类型数据之间的相关性的详细信息。任何人都可以给我提示或指导我。

提前致谢!

2 个答案:

答案 0 :(得分:3)

我想你正在寻找point-biserial correlation。下载包ltm。它包括函数biserial.cor

x <- rnorm(10)
y <- rep(c(0,1), 5)

library(ltm)
biserial.cor(x,y)
#[1] -0.08279833

有关详细信息,请参阅?biserial.cor

结果与使用内置cor函数获得的结果略有不同:

cor(x,y)
#[1] 0.0872771

答案 1 :(得分:2)

这回答了你的问题:

##x is logical, i.e. TRUE or FALSE
R> x = sample(c(T, F), 10, replace=10)
##y is numeric
R> y = runif(10)

##When we use correlation
##R converts TRUE to 1 and FALSE to 0.
R> cor(x, y)
[1] -0.5514

显而易见的问题是你应该这样做吗?请记住,相关性测试x和y之间的线性关系,即x以线性方式增加y个变化。在您的方案中不会发生这种情况。正如@Sven的answer所示,您想要使用Point-biserial相关方法。


如果数据是字符向量,请说:

x = c("M", "F") 

然后你需要做一个额外的步骤:

x[x=="M"] = 1
x[x=="F"] = 1