如何在R中重新划分有序logistic回归模型中的因子?

如何在R中重新划分有序logistic回归模型中的因子?,r,statistics,regression,R,Statistics,Regression,我目前正在研究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 -

我目前正在研究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)?我四处搜索,没有发现类似的问题。非常感谢

我认为您需要来自MASS包的
控制sdif
功能:来自
?控制sdif

选择对比系数,以便编码 单向布局中的系数是 第二级和第一级、第三级和第二级、, 等等这对于有序因子最有意义,但确实如此 不要假设标高的间距相等

因此:

库(MASS)

对比度(d$a)一个非常快速且肮脏的方法是重命名变量。a1是您的基线,因为按字母顺序,a1MASS::contr.sdif()
的可能重复项符合您的要求。因此,在运行
polr
命令之前,对比度(d$a)=MASS::contr.sdif(5)
。@MichaelChirico:问题中概述的对比度不只是为治疗对比度设置不同的参考水平,这不是重复。我尝试了公式中的参数,但它给出了以下错误。变量“(对比度)”的类型(列表)无效
library(MASS)
contrasts(d$a) <- contr.sdif(5) # set contrasts: from @Marius in comments
polr(formula = T ~ a, data = d, Hess = TRUE)