我是新来线性回归的人,我试图找出如何解释汇总结果。我很难解释分类预测变量的估计值。考虑下面的例子。我添加了列的年龄和长度以包含数字预测变量和数字目标。在线性回归中解释分类预测变量的估计值
library(MASS)
data <- as.data.frame(HairEyeColor)
data$length <- c(155, 173, 172, 176, 186, 188, 160, 154, 192, 192, 185, 150, 181, 195, 161, 194,
173, 185, 185, 195, 168, 158, 151, 170, 163, 156, 186, 173, 167, 172, 164, 182)
data$age <- c(48, 44, 8, 23, 23, 63, 64, 26, 8, 56, 40, 11, 17, 12, 60, 10, 9, 21, 46, 7, 12, 9, 32, 37, 52, 64, 36, 31, 41, 24)
summary(lm(length ~ Hair + Eye + Sex + age, data))
输出:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 182.72906 8.22026 22.229 <2e-16 ***
HairBrown 6.22998 7.45423 0.836 0.412
HairRed -0.38261 7.50570 -0.051 0.960
HairBlond -0.25860 7.36012 -0.035 0.972
EyeBlue -8.44369 7.36646 -1.146 0.263
EyeHazel 0.06968 7.49589 0.009 0.993
EyeGreen -0.15554 7.27704 -0.021 0.983
SexFemale -4.92415 5.18308 -0.950 0.352
age -0.19084 0.15910 -1.200 0.243
大部分是不显著,但让我们忽略了现在。
有什么可说的(截取)?直观地说,当分类预测因子(Hair = Black,Eye = Brown,Sex = Male)的基线值适用时,以及年龄= 0时,我会说这是长度值。这是正确的吗?
数据集中长度的平均值为173.8125,但估计值为182.72906。这是否意味着对于基线情况,长度估计实际上高于平均长度?
与问题2类似的问题:假设眼睛=蓝色,并且所有其他值仍作为基线。估计值则变为174.284(182.72906 - 8.44369)。我可以推断,预计的平均长度是174.284,因此仍然高于整体平均值(173.8125)?
我怎样才能发现哪个预测值/值对长度有正面或负面的影响?简单地采取估计的方向将不起作用:负面估计仅意味着它与基线相比具有负面影响。这是否意味着我可以只有推断,例如眼睛=蓝色与 Eye = Brown相比,会产生负面影响而不是推断它总体上具有负面影响?
怎么来(拦截)是重要的,而所有其他行都不是?拦截的意义是什么?
当以Hair作为预测变量运行模型时,Hair = Blond的方向变为正值(见下文),而在之前的模型中为负值。那么为每个预测变量分别运行模型是否更明智一些,以便我可以捕捉到单个预测变量的真实大小和方向?
summary(lm(length ~ Hair, data)) Estimate Std. Error t value Pr(>|t|) (Intercept) 173.125 5.107 33.900 <2e-16 *** HairBrown 4.250 7.222 0.588 0.561 HairRed -2.625 7.222 -0.363 0.719 HairBlond 1.125 7.222 0.156 0.877
谢谢您的帮助。
感谢您的答复。你会知道如何防止将这些值作为虚拟变量来使用吗? – Joseph
@Joseph如果不是虚拟变量,你会怎样模拟它们?它们不是数字值。所以你可以按照Red> Brown> Blonde的顺序对它们进行排序,并将它们的数字设为1,2,3以使它们强制数字化(这是一种非常糟糕的方法),或者将它们转换为虚拟变量(在这种情况下是理想方法)。这些是您可以用于线性回归的唯一两种方法。正如我所说的,你应该尝试其他方法来模拟数据,这允许使用分类变量。 – Gaurav
@ZheyuanLi Y不是?输出摘要清楚地表明'lm()'已经为分类变量的每个值计算了系数。这与使它们成为二元虚拟变量相同。 – Gaurav