如何使用双序列计算连续变量和分类变量之间的相关性?
How to use biserial to calculate correlation between continuous and categorical variable?
我正在尝试计算 R 中 x
(连续变量)和 y
(分类变量)之间的相关性。
psych
包中的函数biserial
就是用来计算这个的。参见 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
谢谢!
由于y
不是二分法,所以使用biserial()
没有意义。来自文档:
The biserial correlation is between a continuous y variable and a dichotmous x variable, which is assumed to have resulted from a dichotomized normal variable.
改为使用 polyserial()
,它允许超过 2 个级别。
polyserial()
需要矩阵作为输入,因此您的命令结构如下:
> polyserial(as.matrix(x), as.matrix(y))
[,1]
[1,] 0.2672098
我正在尝试计算 R 中 x
(连续变量)和 y
(分类变量)之间的相关性。
psych
包中的函数biserial
就是用来计算这个的。参见 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
谢谢!
由于y
不是二分法,所以使用biserial()
没有意义。来自文档:
The biserial correlation is between a continuous y variable and a dichotmous x variable, which is assumed to have resulted from a dichotomized normal variable.
改为使用 polyserial()
,它允许超过 2 个级别。
polyserial()
需要矩阵作为输入,因此您的命令结构如下:
> polyserial(as.matrix(x), as.matrix(y))
[,1]
[1,] 0.2672098