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")
,实际上是在预测"否".
要预测"是",参考水平必须为"否".因此,你必须使用auth$class <- relevel(auth$class, ref = "NO")
.
这是一个常见的错误的人做,因为大多数时候他们oucome变量的矢量0
和1
,人们希望能够预测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)