【问题标题】:How to re-level factor in ordinal logistic regression model in R?如何在 R 中重新调整序数逻辑回归模型中的因子?
【发布时间】:2017-12-16 05:39:27
【问题描述】:

我目前正在研究带有 R 的序数逻辑回归模型。输出系数使用相同的参考水平。我想知道如何更改参考电平?更具体,请参见下面的示例。我不想使用真实数据,所以我模拟了一个。 a 和 T 都是从 1 到 5

polr(formula = T ~ a, data = d, Hess = TRUE)

Coefficients:
      Value Std. Error  t value
a2  0.18823     0.5734  0.32825
a3  0.14747     0.5287  0.27895
a4 -0.50157     0.5766 -0.86985
a5  0.02843     0.5448  0.05219

“a”的系数使用参考级别 1、a2、a3、a4 和 a5 基本上将级别 2、3、4、5 与参考级别 1 进行比较。我的问题是如何重新调整它以便输出将自动给出 a3|2、a4|3、a5|4(即 beta3-beta2、beta4-beta3)?我四处搜索并没有找到类似的问题。非常感谢。

【问题讨论】:

标签: r statistics regression


【解决方案1】:

我想你想要 MASS 包中的 contr.sdif 函数:来自 ?contr.sdif

选择对比度系数,以便编码 在单向布局的系数是之间的差异 指二级和一级,三级和二级, 等等。这对有序因子最有意义,但确实 不要假设这些级别是等距的。

所以:

library(MASS)
contrasts(d$a) <- contr.sdif(5) # set contrasts: from @Marius in comments
polr(formula = T ~ a, data = d, Hess = TRUE)

根据?polr 的文档,应该可以添加参数contrasts=list(a=contr.sdif) 而不是在变量本身上设置对比;然而,这似乎给出了一个错误(类似的设置适用于lm)。这看起来对我来说就像polr 中的一个错误,但这有点难以相信,因为这是 R 的一个古老且经过良好测试的部分......在可能的情况下(也许不是在这种情况下)我更喜欢公式中的 contrasts 参数,因为它在阅读代码时更加明确/可见,但口味不同。

【讨论】:

  • 我尝试使用公式中的参数,但它给了我以下错误。变量“(对比)”的类型(列表)无效
猜你喜欢
  • 2019-05-01
  • 2021-04-28
  • 2019-08-20
  • 2016-12-11
  • 2021-08-21
  • 1970-01-01
  • 2019-01-06
  • 2021-07-01
  • 2017-07-10
相关资源
最近更新 更多