我理解是分类变量等于0(或参考组)时的均值的概念,最终解释为回归系数是两个类别的均值之差。即使有> 2个类别,我也会假设每个解释该类别的均值和参考之间的差异。
但是,如果将更多变量引入多变量模型,该怎么办?现在,截距是什么意思,意味着它不能作为两个分类变量的参考?例如性别(M(参考)/ F)和种族(白人(参考)/黑人)都在模型中。是平均仅为白人男性?一个人如何解释其他可能性?
作为单独的注释:对比声明是否可作为一种方法来研究效果修改?还是只是看到不同级别的效果()?
我理解是分类变量等于0(或参考组)时的均值的概念,最终解释为回归系数是两个类别的均值之差。即使有> 2个类别,我也会假设每个解释该类别的均值和参考之间的差异。
但是,如果将更多变量引入多变量模型,该怎么办?现在,截距是什么意思,意味着它不能作为两个分类变量的参考?例如性别(M(参考)/ F)和种族(白人(参考)/黑人)都在模型中。是平均仅为白人男性?一个人如何解释其他可能性?
作为单独的注释:对比声明是否可作为一种方法来研究效果修改?还是只是看到不同级别的效果()?
Answers:
当存在一个具有级别的分类变量时,您对Beta的解释是正确的。如果存在多个类别变量(并且没有交互项),则截距()是构成两个(所有)类别变量的参考级别的组的平均值。使用您的示例场景,考虑没有交互的情况,那么beta是: β 0
我们还可以从如何计算各种组均值的角度来考虑:
如果您有一个互动词,则它将在黑人女性方程式的末尾添加。(这种交互作用术语的解释相当复杂,但是我在这里详细介绍:交互作用术语的解释。)
更新:为了阐明我的观点,让我们考虑一个用编写的罐头示例R
。
d = data.frame(Sex =factor(rep(c("Male","Female"),times=2), levels=c("Male","Female")),
Race =factor(rep(c("White","Black"),each=2), levels=c("White","Black")),
y =c(1, 3, 5, 7))
d
# Sex Race y
# 1 Male White 1
# 2 Female White 3
# 3 Male Black 5
# 4 Female Black 7
y
这些分类变量的含义是:
aggregate(y~Sex, d, mean)
# Sex y
# 1 Male 3
# 2 Female 5
## i.e., the difference is 2
aggregate(y~Race, d, mean)
# Race y
# 1 White 2
# 2 Black 6
## i.e., the difference is 4
我们可以将这些均值之间的差异与拟合模型的系数进行比较:
summary(lm(y~Sex+Race, d))
# ...
# Coefficients:
# Estimate Std. Error t value Pr(>|t|)
# (Intercept) 1 3.85e-16 2.60e+15 2.4e-16 ***
# SexFemale 2 4.44e-16 4.50e+15 < 2e-16 ***
# RaceBlack 4 4.44e-16 9.01e+15 < 2e-16 ***
# ...
# Warning message:
# In summary.lm(lm(y ~ Sex + Race, d)) :
# essentially perfect fit: summary may be unreliable
关于这种情况要认识的是,没有交互作用项,我们假设平行线。因此,Estimate
对于(Intercept)
是白人男性的平均值。该Estimate
对SexFemale
是平均女性和男性平均之间的差异。该Estimate
对RaceBlack
是平均黑人和白人均值之间的差异。同样,因为没有交互作用项的模型假设效果严格相加(线是严格平行的),所以黑人女性的均值等于白人男性的均值加上女性均值和男性均值之差再加上黑人平均值与白人平均值之间的差异。
如果我们稍微扩展一下示例,将种族类别(例如Asian)包括在第三级,并选择White作为参考,那么您将:
不幸的是,在有多个类别变量的情况下,对截距的正确解释不再那么清楚了(请参阅最后的注释)。当存在n个类别时,每个类别具有多个级别和一个参考级别(例如,您的示例中为White和Male),则拦截的一般形式为:
如果回到您的示例,我们将得到:
让我从@Gung借用一个固定的数值示例:
d = data.frame(Sex=factor(rep(c("Male","Female"),times=3), levels=c("Male","Female")),
Race =factor(rep(c("White","Black","Asian"),each=2),levels=c("White","Black","Asian")),
y =c(0, 3, 7, 8, 9, 10))
d
# Sex Race y
# 1 Male White 0
# 2 Female White 3
# 3 Male Black 7
# 4 Female Black 8
# 5 Male Asian 9
# 6 Female Asian 10
aggregate(y~1, d, mean)
# y
# 1 6.166667
aggregate(y~Sex, d, mean)
# Sex y
# 1 Male 5.333333
# 2 Female 7.000000
aggregate(y~Race, d, mean)
# Race y
# 1 White 1.5
# 2 Black 7.5
# 3 Asian 9.5
我们可以将这些数字与回归结果进行比较:
summary(lm(y~Sex+Race, d))
# Coefficients:
# Estimate Std. Error t value Pr(>|t|)
# (Intercept) 0.6667 0.6667 1.000 0.4226
# SexFemale 1.6667 0.6667 2.500 0.1296
# RaceBlack 6.0000 0.8165 7.348 0.0180
# RaceAsian 8.0000 0.8165 9.798 0.0103
1.5 + 5.333333 - 6.166667
# 0.66666
如果我们回到前面的示例,您将具有: