我正在尝试计算R中x
(连续变量)和y
(分类变量)之间的相关性。
biserial
包中的函数psych
用于计算此值。请参阅here。
但是当我实际使用它时,我收到了一条警告信息和NA作为相关性:
Warning message:
In biserialc(x[, j], y[, i], j, i) : For x = 1 y = 1 y is not dichotomous
有没有人真正使用此功能并获得正确的结果?
更新:
以下是可重现的代码:
library(psych)
x=c(5,3,4,8,7,7,4,9,6,8,11,5,1,4,4,9,5,9,10,2,9,3,6,9,3,9,7,14,7,6,8,10,6,10,2,8,6,4,12,11,1,8,7,7,12,6,5,6,8,9)
y=c(2,3,2,1,1,1,1,1,1,1,1,1,2,1,1,1,1,2,1,1,1,1,1,1,1,1,2,3,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,3,1,1,1,1,1)
biserial(x,y)
输出
Biserial | | 0%
[,1]
[1,] NA
Warning message:
In biserialc(x[, j], y[, i], j, i) : For x = 1 y = 1 y is not dichotomous
谢谢!
答案 0 :(得分:1)
由于y
不是二分法,因此使用biserial()
没有意义。来自文档:
双列相关是在一个连续的y变量和一个二分的x变量之间,假设它是由一个二分的正常变量产生的。
而是使用polyserial()
,它允许超过2个级别。
polyserial()
需要矩阵作为输入,因此请按以下方式构造命令:
> polyserial(as.matrix(x), as.matrix(y))
[,1]
[1,] 0.2672098