【问题标题】:Categorical variables in R - which one does R pick as reference?R 中的分类变量 - R 选择哪一个作为参考?
【发布时间】:2016-02-25 13:32:10
【问题描述】:

当 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 regression categorical-data


    【解决方案1】:

    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"
    

    【讨论】:

      猜你喜欢
      • 2012-10-21
      • 1970-01-01
      • 1970-01-01
      • 2023-02-24
      • 1970-01-01
      • 2019-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多