什么时候可以消除线性回归模型中的截距?


118

我正在运行线性回归模型,并想知道删除拦截项的条件是什么。

在比较两个不同回归的结果时,其中一个具有截距,另一个没有截距,我注意到没有截距的函数的高得多。我应该遵循某些条件或假设以确保删除拦截项有效吗?R2


1
@chi感谢您编辑我的问题。在以后的任何问题中,我是否应该澄清或重新措词?
analyticsPierce

3
您的问题陈述清楚。@chl改善了一些格式,仅此而已。它涉及对“ R ^ 2”进行TeX化(它变成 R ^ 2,呈现为)。$ R 2$$R2
Whuber

1
截距在您的模型中意味着什么?从您问题中的信息来看,当sqft = 0,lotsize = 0和baths = 0时,这似乎是您的响应的期望值。那会在现实中发生吗?
2012年

1
除了y = a + b1 x1 + b2 x2 + b3x3,我可以省略a吗?
特拉维斯

3
注意:这些评论和答复中有一些基本上解决了相同的问题(在房价回归的框架内),该问题与该问题合并为一个重复项。
ub

Answers:


87

最短的回答:从来没有,除非你确信你的数据生成过程(线性回归模型),或者通过一些理论或其他任何原因的线性近似被强制穿过原点。如果不是这样,即使截距在统计上不重要,其他回归参数也会有偏差(奇怪,但确实如此,例如,请参阅Brooks Introductory Econometrics)。最后,正如我经常向学生解释的那样,通过保留拦截项,您可以确保剩余项为零均值。

对于您的两个模型,我们需要更多的上下文。线性模型可能不适用于此处。例如,如果模型是可乘的,则需要先进行对数转换。具有指数增长的过程,偶尔会发生没有截距的模型的更高“很多”的情况。R2

筛选数据,使用RESET测试或任何其他线性规格测试来测试模型,这可能有助于了解我的猜测是否正确。而且,建立模型的最高是我真正关心的最后一个统计属性之一,但是很高兴向不熟悉计量经济学的人们展示这些模型(有很多肮脏的技巧可以使确定接近1 :))。R2


3
-1为“永不”,请参见约书亚回答的示例1
好奇的

4
@Curious,“从不”与“除非”示例一起使用,以下示例仅显示在删除拦截合法的情况下的异常。如果您不知道数据生成过程或理论,或者不因标准化或任何其他特殊模型而被迫通过原始数据,请保留该数据。保持拦截就像使用垃圾箱收集由线性逼近和其他简化引起的所有变形。PS实际上,响应表明您读得最短:)非常感谢Joshua(+1)的扩展示例。
Dmitrij Celov

3
您错过了约书亚示例1的要点,但似乎仍然完全忽略了它。在具有分类协变量的模型中,截距的去除在同一模型中只是参数不同。当可以删除拦截器时,这是合理的情况。
好奇

2
@Curious,在约书亚(Joshua)示例1中,您需要为以前视为基线的分类变量的级别添加一个新的虚拟变量,并且该新的虚拟变量将采用拦截的值,因此您无需删除拦截,只需重命名它并重新参数化分类协变量的其余参数即可。因此,德米特里(Dmitrij)的论点成立。
Rufo

59

删除拦截器是另一种模式,但是有很多示例是合法的。到目前为止,答案已经详细讨论了真实截距为0的示例。我将重点关注一些可能对非典型模型参数化感兴趣的示例。

示例1:方差分析样式模型。对于分类变量,我们通常创建对组成员资格进行编码的二进制向量。将标准回归模型参数化为intercept + k-1个伪向量。截距编码“参考”组的期望值或省略的矢量,其余矢量测试每个组与参考之间的差异。但是在某些情况下,具有每个组的期望值可能会很有用。

dat <- mtcars
dat$vs <- factor(dat$vs)

## intercept model: vs coefficient becomes difference
lm(mpg ~ vs + hp, data = dat)

Coefficients:
(Intercept)          vs1           hp  
   26.96300      2.57622     -0.05453  

## no intercept: two vs coefficients, conditional expectations for both groups
lm(mpg ~ 0 + vs + hp, data = dat)

Coefficients:
     vs0       vs1        hp  
26.96300  29.53922  -0.05453  

示例2:标准化数据的情况。在某些情况下,可能正在使用标准化数据。在这种情况下,截距设计为0。我认为经典的例子是老式的结构方程模型或因子,它仅对数据的协方差矩阵起作用。在下面的例子中,如果只是降低额外的自由度(您确实应该因为估计均值而损失了该自由度),则无论如何都要估计截距可能是一个好主意,但是在少数情况下在结构上,均值可以为0(例如,某些实验中,参与者分配了评分,但被约束为给出相等的肯定和否定)。

dat <- as.data.frame(scale(mtcars))

## intercept is 0 by design
lm(mpg ~ hp + wt, data = dat)

Coefficients:
(Intercept)           hp           wt  
  3.813e-17   -3.615e-01   -6.296e-01  

## leaving the intercept out    
lm(mpg ~ 0 + hp + wt, data = dat)

Coefficients:
     hp       wt  
-0.3615  -0.6296  

示例3:多元模型和隐藏拦截。该示例在许多方面与第一个示例相似。在这种情况下,数据已堆叠,因此两个不同的变量现在位于一个长向量中。第二个变量编码有关响应向量y属于mpg还是的信息disp。在这种情况下,要获得每个结果的单独截距,您可以抑制总体截距并包括两个虚拟矢量进行测量。这是一种多变量分析。通常不使用lm()因为您已经采取了多次措施,因此可能应该考虑到无能为力。但是,在一些有趣的情况下有必要这样做。例如,当尝试使用随机效应进行中介分析时,要获得完整的方差协方差矩阵,您需要同时估计两个模型,这可以通过堆叠数据和巧妙使用虚拟向量来完成。

## stack data for multivariate analysis
dat <- reshape(mtcars, varying = c(1, 3), v.names = "y",
  timevar = "measure", times = c("mpg", "disp"), direction = "long")
dat$measure <- factor(dat$measure)

## two regressions with intercepts only
lm(cbind(mpg, disp) ~ 1, data = mtcars)

Coefficients:
             mpg     disp  
(Intercept)   20.09  230.72

## using the stacked data, measure is difference between outcome means
lm(y ~ measure, data = dat)

Coefficients:
(Intercept)   measurempg  
      230.7       -210.6  

## separate 'intercept' for each outcome
lm(y ~ 0 + measure, data = dat)

Coefficients:
measuredisp   measurempg  
     230.72        20.09  

我并不是在说通常应该删除拦截器,但是保持灵活性是一件好事。


7
+1。我并没有刻意说“从不”,但换个角度总是很好,这是一个非常清晰和周到的回答。欢迎使用CV,很高兴能成为社区的一分子。
gung

3
@gung谢谢你,你是对的。我已经从答案中删除了该语言,因为我认为这是煽动性的和不必要的。
约书亚

1
@Joshua:抱歉,我在一个将近2年的帖子上问一个问题,但是您的第一个示例是否有任何参考?我正在考虑在我的数据上运行一个非拦截模型,其中预测变量是分类的,并且我想知道每个级别是否与0明显不同。谢谢!
亚历克斯(Alex)

@Alex任何出色的回归文本都应该做(《行为科学》的《应用多元回归/相关性分析》第8章第8章涵盖了其中的一些内容)-您只需要它来谈论对比以及如何虚拟编码分类变量。一种考虑的方法是,您要为每个组分别估计截距,而不是将截距排除在外。
2014年

@Joshua,您的第一个例子在本网站的其他地方引起了混乱。我在这里的理解是,您建议使用一种方便的技巧来显示参数估计值,而不必弄乱添加截距的值,并且您不建议通常的做法是使用删除了截距的模型来进行方差分析。在R中,几乎在每种情况下,人们都会使用带有截距的模型来进行传统的方差分析。
Sal Mangiafico

29

这里有很好的答案。两件小事:

  1. 关于截距下降时较高的,您应该通过@cardinal 阅读出色的答案。(简而言之,当截距强制为0时,统计软件有时对使用不同的定义。因此,所报告的带有和不带有截距的模型的可能根本无法比较。) R 2 R 2R2R2R2
  2. 有几个人指出,在删除它之前,应确保截距必须为0(出于理论原因),而不仅仅是它不是“有效的”。我认为是正确的,但这不是全部。您还需要知道,真正的数据生成函数在您使用的范围内一直到0 都是完全线性的。请记住,该函数在您的数据中始终可能近似线性,但实际上稍微弯曲。将函数视为在您的观察范围内是线性的,这可能是非常合理的,即使它不是那么完美,但如果不是这样的话,X即使真实截距为0

2
@AdamO在这里与#2相似:正线性回归系数,但更充分地提出了这个想法。
gung

14

无论您是否有可能看到所有解释性变量的值为零,都不应丢弃该截距。

有一个很好的回答非常类似的问题在这里

如果删除了截距,则其他估计都将变得有偏差。即使截距的真实值大约为零(这是您可以从数据中得出的所有结论),但如果将其强制为正好为零,也将使斜率混乱。

除非-您要用一个非常清晰明了的物理模型来测量某些东西,该模型要求截距为零(例如,您将直角棱镜的高度,宽度和长度作为解释变量,而响应变量是具有一定测量误差的体积)。如果您的响应变量是房屋的价值,则肯定需要保留截距。


1
您能解释一下,为什么我们需要截距来预测房价?为什么任何房子的所有X都为零?
精灵

10

好,所以您已将问题全部更改了

当您知道截距为0时,可以省去截距。就是这样。不,您不能这样做,因为它与0并无显着差异,您必须知道它为0或残差有偏差。而且,在这种情况下,它为0,所以如果您将其省略,则不会有任何区别...因此,切勿将其遗漏。

您对的发现表明数据不是线性的。并且,考虑到您将面积作为预测变量,则特定变量肯定绝对不是线性的。您可以转换预测变量以解决该问题。R2


2
当我们希望使用Engle / Granger两步法测试协整时该怎么办?en.wikipedia.org/wiki/Cointegration
Jase 2012年

5

大多数多元回归模型都包含一个常数项(即截距),因为这可以确保模型是无偏的,即残差的均值将恰好为零。(回归模型中的系数通过最小二乘估计,即最小化均方误差。现在,均方误差等于误差的方差加上均方的平方:这是一个数学恒等式。模型中的常数值会改变误差的平均值,但不会影响方差,因此,如果要使误差平方和最小化,则必须选择常数,以使误差的平均值为零。 )

在简单的回归模型中,常数以非标准形式表示回归线的Y轴截距。在多元回归模型中,该常数表示如果所有自变量同时等于零,则该因变量可以预测的值-这种情况可能在物理上或经济上都不有意义。如果您对所有自变量同时为零会发生什么不特别感兴趣,则通常将常量保留在模型中,无论其统计意义如何。除了确保样本内误差无偏外,常量的存在还允许回归线“寻找自己的水平”,并提供对仅局部线性的数据的最佳拟合。

但是,在极少数情况下,您可能希望从模型中排除常数。这是任何软件包中回归过程中的模型拟合选项,有时被称为通过原点回归,或简称为RTO。通常,只有在以下情况下才能这样做:

  1. 可以想象所有独立变量同时都假定值为零,并且您认为在这种情况下逻辑上应该遵循因变量也将等于零的情况。要不然
  2. 该常数与您要使用的一组独立变量是多余的。

情况(1)的示例是一个模型,其中所有相关变量和独立变量都代表其他时间序列的第一个差异。如果要在X的第一个差异上回归Y的第一个差异,则可以直接预测Y的变化,作为X的变化的线性函数,而无需参考变量的当前水平。在这种情况下,合理的(尽管不是必需的)假设平均而言,每当X不变时,Y便应该保持不变,即,在X不变的情况下,Y不应有上升或下降的趋势。 X级。

情况(2)的示例是您希望使用全套季节性指标变量的情况-例如,您使用的是季度数据,并且希望包括代表加性的变量Q1,Q2,Q3和Q4季节性影响。因此,Q1看起来像1 0 0 0 1 0 0 0 ...,Q2看起来像0 1 0 0 0 1 0 0 ...,依此类推。由于Q1 + Q2 + Q3 + Q4 = 1 1 1 1 1 1 1 1,因此无法在同一模型中同时使用所有这四个和一个常数。。。。,与常数项相同。即,五个变量Q1,Q2,Q3,Q4和CONSTANT不是线性独立的:它们中的任何一个都可以表示为其他四个变量的线性组合。拟合线性回归模型的技术先决条件是自变量必须是线性独立的。否则,最小二乘系数无法唯一确定,

一个警告:R-平方和F统计量在RTO模型中的含义与在普通回归模型中的含义不同,并且并非所有软件都以相同的方式计算它们。请参阅本文以了解一些注意事项。尽管可以比较回归的标准误差,但是您不应该尝试比较包含和不包含常数项的模型之间的R平方。

请注意,术语“独立”在回归术语中至少(以)三种不同的方式使用:如果将单个变量用作预测变量而不是被预测变量,则可以将其称为独立变量。如果没有一个变量可以精确地表示为其他变量的线性组合,则它们是线性独立的。如果一对变量不仅线性独立,而且彼此之间完全没有信息,则可以说它们在统计上是独立的。在回归模型中,您希望因变量在统计上依赖于自变量,自变量之间必须线性(但不一定在统计上)独立。


2
您指的是什么文章?
gung

2

完全修改了我的想法。确实,降低截距将导致偏差问题。

您是否考虑过将数据居中,以使截距具有一定的含义,并避免说明某些(不合理的)值会产生负值?如果您通过减去平均平方英尺,平均手数和平均浴室来调整所有三个解释变量,则截距现在将指示平均房屋,房屋面积和浴室的价值(房屋价值)。

这种居中不会改变自变量的相对关系。因此,将模型拟合到中心数据仍将发现浴池微不足道。在不包括浴缸的情况下改装模型。您可能仍会获得较大的截距p值,但应将其包括在内,并且将具有y = a + b(sqrft)+ c(lotsize)形式的模型。


1

我只是花了一些时间回答其他人发布的类似问题,但是已经关闭。这里有一些很好的答案,但是我提供的答案要简单一些。它可能更适合对回归了解较弱的人。

问题1:如何解释模型中的截距?

在回归模型中,目标是最大程度地减少结果变量中无法解释的方差:

y = b0 +b1⋅x+ ϵ

其中y是结果度量的预测值(例如log_blood_hg),b0是截距,b1是斜率,x是预测变量,而ϵ是残差。

截距(b0)是所有x = 0时y的预测平均值。换句话说,它是y的基线值,在您使用任何变量(例如,种类)进一步最小化或解释log_blood_hg中的方差之前。

通过添加一个斜率(它估计log_blood_hg的单位增加/减少如何随着x的单位增加(例如物种)而变化),我们在已经知道的结果变量上加上了它的基线值(即拦截),基于另一个变量的变化。

问题2:什么时候包括或不包括截距,特别是关于模型给出的结果截然不同的事实?

对于像这样的简单模型,绝对不适合丢弃截距。

当您删除截距时,这些模型会得出不同的结果,这是因为不是将斜率接地到Y的基线值,而是迫使其通过y的原点(即0)。因此,该斜率变得更陡峭(即,功率更大且有效) ),因为您已将线强制穿过原点,而不是因为这样做可以更好地将y的方差最小化。换句话说,您是人为地创建了一个模型,该模型通过删除截距或模型的初始接地点来最小化y中的方差。

在某些情况下,删除截距是适当的-例如,当描述带有0截距的现象时。您可以在此处了解有关信息,以及删除拦截器不是一个好主意的更多原因。


1

简短的回答:(几乎)永远不会。在线性回归模型 ,如果设置,则说您知道在给定情况下的期望值为零。您几乎永远都不知道。

y=α+βx+ϵ
α=0yx=0

R2变得更高而没有截距,这不是因为模型更好,而是因为所使用的的定义是另一个定义!是估计模型与某些标准模型的比较的表示,表示为与标准模型的平方和相比,平方和的减少。在具有截距的模型中,比较平方和在均值附近。没有截距,它大约为零!最后一个通常更高,因此更容易大幅度减少平方和。R2R2

结论:不要将截取模型留在模型之外(除非您真的非常知道自己在做什么)。

某些例外情况:一个例外情况是一种回归,该回归表示一种针对所有因子水平的虚拟变量的单向方差分析(通常不包括在内)(但这似乎只是一个例外,常数矢量1位于模型矩阵的列空间中))否则,例如没有常数的物理关系。但是即使这样,如果模型只是近似的(速度不是真正恒定的),即使不能解释也可以保留一个恒定的更好。 Xs=vt

还有一些特殊的模型可以忽略拦截。一个例子是配对数据,双胞胎研究

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.