[英]Interpreting Estimate of categorical variable coefficient in lm() summary() in R
我有一个线性 model 的 class “lm”,我正在查看摘要(lm),它的玩具版本是:
fit <- lm(Strength ~ Age + Sex, data = mydata)
summary(fit)
可以理解, Age
是一个连续变量,而Sex
是一个分类变量。 summary(fit)
output 的相关部分如下所示:
Estimate
(Intercept) -1.838e-01
Age -5.264e-03
Sex.L 3.260e-01
我应该如何解释这一点,特别是分类变量? 我理解这意味着:
力量 = -0.1838 + (0.005264 * 年龄) + (0.326 * 性别)
但这是正确的吗? Sex
有什么价值? 一种性别为 1,另一种性别为 0? 我应该如何检查哪个性别取值 1? 由于我的性别因素水平是男性和女性,我假设.L 是其中一个的虚拟变量,但我不知道如何检查这一点。
任何建议将不胜感激。
非常感谢。
系数的名称是“Sex.L”这意味着Sex
是一个有序的分类变量,并且使用了多项式对比编码而不是处理编码。 在这种情况下,方程中的Sex不只是取 0 或 1。
您确实需要先将此有序因子转换为通常的因子:
mydata$Sex <- factor(mydata$Sex)
您可以在此阶段检查levels(mydata$Sex)
。 第一级将被丢弃, Sex
系数为第二级。 请注意,使用不同的对比度将导致不同的系数。
您还可以将级别控制为您想要的顺序,例如:
mydata$Sex <- factor(mydata$Sex, levels = c("Male", "Female"))
请注意,更改级别的顺序也会产生不同的回归系数。
无论如何,只要Sex
是通常的因素(即is.ordered(mydata$Sex)
为 FALSE),就会应用处理对比编码。 第一级编码为 0,第二级编码为 1。假设拟合的 model 系数为a
、 b
和c
,则方程为:
Strength = a + b * Age + c * Sex
其中第一Sex
为 0,第二级为 1。
一点背景:
“Sex.L”中的“L”表示“线性”,表示多项式对比度。 如果因子有 4 个水平,我们将看到“L”(线性)、“Q”(二次)和“C”(三次)。
但是,如果Sex
是通常的因素,则报告的名称应该是“SexMale”或“SexFemale”。 是的,这是足够的信息。
如果我们看到“SexMale”,那么“Female”是第一个级别,所以在等式中, Sex为 0 表示女性,1 表示男性。
如果我们看到“SexFemale”,那么“Male”是第一个级别,所以在等式中, Sex为 0 表示男性,1 表示女性。
对比编码后的分类变量的这种命名约定非常有用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.