逻辑回归 - 在 R 中定义参考水平
Posted
技术标签:
【中文标题】逻辑回归 - 在 R 中定义参考水平【英文标题】:Logistic regression - defining reference level in R 【发布时间】:2014-06-10 12:20:53 【问题描述】:我要疯了,想弄清楚这一点。我如何在 R 中定义要在二元逻辑回归中使用的参考水平?那么多项逻辑回归呢?现在我的代码是:
logistic.train.model3 <- glm(class~ x+y+z,
family=binomial(link=logit), data=auth, na.action = na.exclude)
我的响应变量是“YES”和“NO”。我想预测有人回答“是”的概率。
我不想将变量重新编码为 0 / 1。有没有办法告诉模型预测“是”?
感谢您的帮助。
【问题讨论】:
让课堂成为一个因素 - 见?factor
我的类变量,是一个因子变量。我正在寻找分配事件或逻辑回归预测的类的值。现在它预测“否”,我希望它预测“是”。
ok 使用I
函数(原样):I(class=="yes")
你为什么要这样做?只需将系数乘以-1...还有relevel(class, ref = 'YES')
@user20650 你能证明你把那个函数放在哪里/插入那行代码吗?这似乎是答案/我正在寻找的。span>
【参考方案1】:
假设您已将类保存为一个因素,请使用 relevel()
函数:
auth$class <- relevel(auth$class, ref = "YES")
【讨论】:
请注意,当使用auth$class <- relevel(auth$class, ref = "YES")
时,您实际上预测的是“否”,而不是“是”。
如果有人没有将类保存为因子,只需执行 relevel(factor(auth$class), ref="YES")【参考方案2】:
请注意,当使用auth$class <- relevel(auth$class, ref = "YES")
时,您实际上是在预测“否”。
要预测“YES”,参考电平必须为“NO”。因此,您必须使用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
【讨论】:
这个答案在我很困惑之后真的帮助了我-谢谢!以上是关于逻辑回归 - 在 R 中定义参考水平的主要内容,如果未能解决你的问题,请参考以下文章