我是 R 的初学者。我已经学会了如何检查数字数据之间的相关性。
但是,我找不到有关如何检查数字和布尔类型数据之间相关性的详细信息。任何人都可以给我提示或指导我。
提前致谢!
我是 R 的初学者。我已经学会了如何检查数字数据之间的相关性。
但是,我找不到有关如何检查数字和布尔类型数据之间相关性的详细信息。任何人都可以给我提示或指导我。
提前致谢!
我想你正在寻找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
这回答了你的问题:
##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