有没有办法在 R 的回归输出中显示参考类别?

Is there a way to display the reference category in a regression output in R?

我正在估计一个包含一些 factor/categorial 变量和一些数值变量的回归模型。是否可以在回归模型的摘要中显示每个 factor/categorial 变量的参考类别?

理想情况下,这也将转换为 texreg 或 stargazer 以具有乳胶输出,但将它们放在回归摘要中已经是一个好的开始。

有没有人有想法,我错过了什么?

参考水平是汇总中缺失的那个,因为其他水平的系数是与参考水平的对比,即截距实际上代表参考类别中的均值。

iris <- transform(iris, Species_=factor(Species))  ## create factor

summary(lm(Sepal.Length ~ Petal.Length + Species_, iris))$coe
#                    Estimate Std. Error   t value      Pr(>|t|)
# (Intercept)         3.6835266 0.10609608 34.718780 1.968671e-72
# Petal.Length        0.9045646 0.06478559 13.962436 1.121002e-28
# Species_versicolor -1.6009717 0.19346616 -8.275203 7.371529e-14
# Species_virginica  -2.1176692 0.27346121 -7.743947 1.480296e-12

您可以删除拦截,以显示缺少的级别,但这没有多大意义。然后,您只需在没有参考的情况下获得每个级别的均值,但是您对参考级别与其他级别之间的对比感兴趣。

summary(lm(Sepal.Length ~ 0 + Petal.Length + Species_, iris))$coe
#                     Estimate Std. Error   t value     Pr(>|t|)
# Petal.Length       0.9045646 0.06478559 13.962436 1.121002e-28
# Species_setosa     3.6835266 0.10609608 34.718780 1.968671e-72
# Species_versicolor 2.0825548 0.28009598  7.435147 8.171219e-12
# Species_virginica  1.5658574 0.36285224  4.315413 2.921850e-05

如果您不确定,参考水平始终是因子的第一水平。

levels(iris$Species_)[1]
# [1] "setosa"

为了证明这一点,指定一个不同的参考水平,看看它是否是第一个。

iris$Species_ <- relevel(iris$Species_, ref='versicolor')

levels(iris$Species_)[1]
# [1] "versicolor"

在报告中table下方的注释中引用参考水平是很常见的,我建议您也这样做。