gpt4 book ai didi

r - R 中的分类变量 - R 选择哪一个作为引用?

转载 作者:行者123 更新时间:2023-12-05 01:02:33 28 4
gpt4 key购买 nike

当 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"

关于r - R 中的分类变量 - R 选择哪一个作为引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33871122/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com