Logistic回归 - 定义R中的参考水平

bla*_*t00 11 r logistic-regression

我想解决这个问题.我如何在R中定义在二元逻辑回归中使用的参考水平?那么多项逻辑回归呢?现在我的代码是:

logistic.train.model3 <- glm(class~ x+y+z,
                         family=binomial(link=logit), data=auth, na.action = na.exclude)
Run Code Online (Sandbox Code Playgroud)

我的响应变量是"YES"和"NO".我想预测某人回答"是"的可能性.

我不想将变量重新编码为0/1.有没有办法告诉模型预测"是"?

谢谢您的帮助.

小智 16

假设您已将类保存为因子,请使用以下relevel()函数:

auth$class <- relevel(auth$class, ref = "YES")
Run Code Online (Sandbox Code Playgroud)

  • 注意,当使用`auth $ class < - relevel(auth $ class,ref ="YES")`时,你实际上是在预测"NO",而不是"YES". (5认同)

ngh*_*ran 8

请注意,使用时auth$class <- relevel(auth$class, ref = "YES"),实际上是在预测"否".

要预测"是",参考水平必须为"否".因此,你必须使用auth$class <- relevel(auth$class, ref = "NO").

这是一个常见的错误的人做,因为大多数时候他们oucome变量的矢量01,人们希望能够预测1.

但是当这样的矢量被认为是一个因子变量时,参考水平是0(见下文),以便人们有效地预测1.同样,您的参考水平必须为"否",以便您预测"是".

set.seed(1234)
x1 <- sample(c(0, 1), 50, replace = TRUE)
x2 <- factor(x1)
str(x2)
#Factor w/ 2 levels "0","1": 1 2 2 2 2 2 1 1 2 2 ...You can see that reference level is 0
Run Code Online (Sandbox Code Playgroud)