【问题标题】:Logistic regression - defining reference level in R逻辑回归 - 在 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>

标签: r logistic-regression


【解决方案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

【讨论】:

  • 这个答案在我很困惑之后真的帮助了我-谢谢!
猜你喜欢
  • 2021-11-03
  • 2021-03-25
  • 2020-03-02
  • 2018-01-26
  • 1970-01-01
  • 2011-04-21
  • 2020-05-11
相关资源
最近更新 更多