R 中的分类变量 - R 选择哪个作为参考?

Categorical variables in R - which one does R pick as reference?

当 R 使用分类变量执行回归时,它实际上是虚拟编码。也就是说,省略其中一个级别作为基础或参考,并且回归公式包括所有其他级别的虚拟变量。但是 R 选择哪一个作为参考以及我如何影响这个选择?

具有四个级别的示例数据(来自 UCLA's IDRE):

hsb2 <- read.csv("http://www.ats.ucla.edu/stat/data/hsb2.csv")

summary(lm(write ~ factor(race), data = hsb2))
# level 1 is the reference level

hsb2.ordered <- hsb2[rev(order(hsb2$race)),]

summary(lm(write ~ factor(race), data = hsb2.ordered))
# level 1 is still the reference level

R 中因子水平的顺序 而不是 取决于数据的顺序。因此,改变数据的顺序不会影响因子的参考水平。

您可以通过函数levels:

获取关卡顺序
fac <- factor(hsb2$race)
levels(fac)
# [1] "1" "2" "3" "4"

因子水平的顺序基于数据的字母顺序。

您可以使用relevel函数更改参考电平:

fac2 <- relevel(fac, ref = "2")
levels(fac2)
# [1] "2" "1" "3" "4"

现在,级别"2"是参考级别。这也会影响回归:

lm(write ~ fac2, data = hsb2)
#
# Call:
# lm(formula = write ~ fac2, data = hsb2)
# 
# Coefficients:
# (Intercept)        fac21        fac23        fac24  
#      58.000      -11.542       -9.800       -3.945  

函数 factor 允许创建因子水平的任意排序:

fac3 <- factor(fac, levels = c("3", "4", "2", "1"))
levels(fac3)
# [1] "3" "4" "2" "1"