3

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

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

提前致谢!

4

2 回答 2

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
于 2012-09-19T14:00:19.373 回答
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的回答所示,您想使用点双序列相关方法。


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

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

那么你需要做一个额外的步骤:

x[x=="M"] = 1
x[x=="F"] = 1
于 2012-09-19T13:53:57.787 回答