2016-07-08 111 views
0

我是新来线性回归的人,我试图找出如何解释汇总结果。我很难解释分类预测变量的估计值。考虑下面的例子。我添加了列的年龄和长度以包含数字预测变量和数字目标。在线性回归中解释分类预测变量的估计值

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 

大部分是不显著,但让我们忽略了现在。

  1. 有什么可说的(截取)?直观地说,当分类预测因子(Hair = Black,Eye = Brown,Sex = Male)的基线值适用时,以及年龄= 0时,我会说这是长度值。这是正确的吗?

  2. 数据集中长度的平均值为173.8125,但估计值为182.72906。这是否意味着对于基线情况,长度估计实际上高于平均长度?

  3. 与问题2类似的问题:假设眼睛=蓝色,并且所有其他值仍作为基线。估计值则变为174.284(182.72906 - 8.44369)。我可以推断,预计的平均长度是174.284,因此仍然高于整体平均值(173.8125)?

  4. 我怎样才能发现哪个预测值/值对长度有正面或负面的影响?简单地采取估计的方向将不起作用:负面估计仅意味着它与基线相比具有负面影响。这是否意味着我可以只有推断,例如眼睛=蓝色与 Eye = Brown相比,会产生负面影响而不是推断它总体上具有负面影响?

  5. 怎么来(拦截)是重要的,而所有其他行都不是?拦截的意义是什么?

  6. 当以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 
    

谢谢您的帮助。

回答

0
  1. 是的。虚拟变量是通过对比编码创建的,因此您的拦截确实是对基准值的预测。

  2. 同样如第1点所述,是的。

  3. 是的,你可以得出结论,但差异很小。您应该检查平均值是否随置信区间下降。如果确实如此,那么蓝色的平均值和价值之间的差异对于实际目的而言并不重要。

  4. 由于这些都是虚拟变量,因此您可以可以推断出正的估计值表示正面影响,反之亦然。但是,更准确地说,看一下置信区间。只有在上限和下限都是正数的情况下,您才可以有把握地说这个变量具有积极的影响。否则其不可预知的。

  5. 因为你的数据不提供在所有变量都为零会发生什么情况的任何信息的模式,将有较少的观测模型来做出拦截任何有意义的预测。任何时候你的虚拟变量都不会全部为零。

  6. 是的,你可以做到这一点,但它会大多会给你只的方向,提供的置信区间不包括它们之间的零。

如果我是你,我会选择一个不同的模型,比如已知可以很好地处理分类变量的回归树。

+0

感谢您的答复。你会知道如何防止将这些值作为虚拟变量来使用吗? – Joseph

+0

@Joseph如果不是虚拟变量,你会怎样模拟它们?它们不是数字值。所以你可以按照Red> Brown> Blonde的顺序对它们进行排序,并将它们的数字设为1,2,3以使它们强制数字化(这是一种非常糟糕的方法),或者将它们转换为虚拟变量(在这种情况下是理想方法)。这些是您可以用于线性回归的唯一两种方法。正如我所说的,你应该尝试其他方法来模拟数据,这允许使用分类变量。 – Gaurav

+0

@ZheyuanLi Y不是?输出摘要清楚地表明'lm()'已经为分类变量的每个值计算了系数。这与使它们成为二元虚拟变量相同。 – Gaurav

0

考虑这些逐点:

1)是的,你的解释是正确的。 HairBrown = 6意味着棕色头发个体的长度比基线类别长6个单位。在这种情况下,这是黑头发,但值得注意的是基线的选择对于分类变量是任意的。

2)我不会真的以这种方式本身解释截距值,这是因为:A)请记住,您还可以在那里连续预测(年龄),你没有并入这个概念;在年龄= 0时没有人,所以你估计的是一个个人的价值,而这个价值在你的数据集中并不存在(或者不可能)。 B)你有几个解释变量,所以'基线情况'是把所有东西都集中在一起,不需要集中。您可以获得有关每个变量正在进行的操作的信息,并可以将这些信息组合起来以预测年龄,眼睛颜色,性别和头发颜色的任何特定组合的值。

3),你可以在某些情况下,但你在谈论与你的榜样年龄= 0人。除此之外,我不明白你为什么试图与平均情况进行比较(因为在前面的案例中有解释)。另外,忽略当前的连续预测因素,组间样本量的差异会强烈影响整体平均值。比较群体与比较个体群体与整体平均值之间的差异几乎总是更有意义。另请注意,这忽略了参数估计中的不确定性。

4)“在一般的负面影响”是没有多大意义。这是必要的比较,即相对于某些东西是负面的。你可以做的是使其他类别(不仅仅是基线)与估计系数进行配对比较,因为这些关系是可传递的。例如。 EyeBlue和EyeGreen都相对于基线呈负相关,但EyeGreen更负面。因此,绿眼人有较短的长度(忽略的事实变量不显著)

5)截取是显著只是意味着你基线的长度不等于0。在大多数情况下,这是不是很信息丰富,特别是因为(再次!)这假定年龄为0。这是外推的问题。

6)没有,但是这不是一个很简单的主题(查找模式的选择,如果你有兴趣了解更多)。在这种情况下,您的变量都不是重要的,这(松散地说)意味着您无法真正说出任何变量是否具有正面或负面影响。所以模型结构的变化反映了标志并不奇怪。查看置信区间以了解参数估计的宽度;他们将从负面到正面。基本上,假设你有一个体面的样本大小,你的变量可能解释不了多少。

这里所有的比较都是想更容易对与图(使用上面的参数值进行,并通过头发的颜色着色):

Plot by group

相关问题