逻辑回归 - 在 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 &lt;- relevel(auth$class, ref = "YES") 时,您实际上预测的是“否”,而不是“是”。 如果有人没有将类保存为因子,只需执行 relevel(factor(auth$class), ref="YES")【参考方案2】:

请注意,当使用auth$class &lt;- relevel(auth$class, ref = "YES") 时,您实际上是在预测“否”。

要预测“YES”,参考电平必须为“NO”。因此,您必须使用auth$class &lt;- 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

【讨论】:

这个答案在我很困惑之后真的帮助了我-谢谢!

以上是关于逻辑回归 - 在 R 中定义参考水平的主要内容,如果未能解决你的问题,请参考以下文章

更改R中逻辑回归(glm)中使用的参考等位基因[重复]

更改逻辑回归中分类预测变量的参考组

逻辑回归算法实现_基于R语言

R语言在逻辑回归中求R square R方

R语言使用Metropolis- Hasting抽样算法进行逻辑回归

在 R 中绘制逻辑回归曲线