【问题标题】:How to change the logistic regression output in R如何更改 R 中的逻辑回归输出
【发布时间】:2020-11-08 20:07:29
【问题描述】:

这是我的第一个问题,所以我尽我所能尽可能地描述它。对于一个项目,我想使用逻辑回归模型并在一些图表中显示结果。目前我有以下问题:当我使用以下代码创建我的逻辑模型时:

m3<- glm(alive ~ seatbelt*dvcat + sex + ageOFocc + airbag, family = binomial, data = nassCDS)
summary(m3)

输出如下所示:

alive 是一个二进制变量,1 表示存活,0 表示死亡。 安全带是一个因素与安全带的水平和没有。 性别是男性或女性。 ageOFocc 是司机的年龄。 安全气囊是安全气囊级别的一个因素,或者没有。 dvcat是代表车辆撞击速度的5个等级的因子。

因为我对 R 不是很精通,所以我想在我找到的网站上重新创建这些步骤。所以我基本上复制了他们的代码并期望得到相同的输出。但也有细微的差别。该网站的输出显示了“Seatbeltseatbelted”和“airbagairbag”的系数,而我的输出显示了“seatbeltnone”和“airbagnone”的值(在图片上标记为黄色)。我可以改变这个吗?

我已经在另一台计算机上测试过它并且遇到了同样的问题。我的一个朋友在她身上试了一下,她得到了“正确”的输出。我重新安装了 R 和 R Studio,并在我的 PC 上重新安装了 Windows,但似乎没有什么对我有用。

我希望你能帮助我 :) 亲切的问候 Jan

【问题讨论】:

  • 您的seatbeltairgbag 变量是factor,并显示与它们的参考水平相匹配的结果。但是,与您的来源相比,这实际上可能是正确的结果!无论如何,您可能想使用?as.numeric() 来转换因子。
  • @Dave2e glm() 可以将字符列作为输入,因此可能不需要将列从字符转换为因子。
  • @Dave2e 我正在使用 R 3.5.3
  • @DarrenTsai,正确,glm 可以采用字符列,但问题是为什么示例和当前输出之间的输出不同。鉴于提供的信息有限,我怀疑这是性格和因素之间的差异。

标签: r coefficients


【解决方案1】:

问题可能是您弄乱了seatbeltairgbag参考水平。尝试使用relevel() 将它们的参考电平重置为none,然后再次运行glm()

nassCDS$seatbelt <- relevel(nassCDS$seatbelt, ref = "none")
nassCDS$airbag <- relevel(nassCDS$airgbag, ref = "none")

理论上,lm()glm() 等函数将因子的第一层作为其参考层,并且因子的层默认按字母顺序排序。因此,如果一个因子包含两个水平,例如airbagnone,则airbag 将被视为其参考电平。 relevel() 可以将您在ref 参数中设置的级别移动到第一个位置,因此模型会将其视为参考。

【讨论】:

    猜你喜欢
    • 2011-03-27
    • 2020-06-13
    • 2018-01-26
    • 2020-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-12
    • 2014-06-20
    相关资源
    最近更新 更多