统计挖掘的情与事(三)——超详尽回归分析理论指南

作者简介

浩彬老撕,R语言中文社区特邀作者。

个人公众号:探数寻理

一、理论部分

简单地说,一元线性回归和多元线性回归都属于简单线性回归范畴,最直接的差异在于一元线性回归的自变量只有一个,而多元线性回归的自变量存在多个。

尽管主要的解决思路一致,大家可以把一元线性回归看作多元线性回归的特例,但在解决多元的问题上,咱们还是有比较多的问题需要注意。

回到咱们的回归方程,针对于此问题,我们需要关注的重点有3个:

(1)参数估计;(2)假设检验与评价;(3)变量选择

为了便于讨论,我们把上式改写成向量形式:

其中我们的数据集D中一共有n个样本,每个样本均可以由m个属性进行描述:

数据集D表示成矩阵X,第一列置为1,表示回归方程中的常数项

问题1:参数估计

针对于该方程中的未知参数,我们同样可以利用最小二乘法进行估计,损失函数方程有:

问题2:假设检验与评价

(1)F检验

与一元回归分析不一样,我们现在存在多个自变量。为了衡量整体方程的有效性,我们需要研究整体变量X是否有对y产生影响,也即意味着,我们需要验证的命题是:

也即对应的原假设:

为了验证该命题,我们可以借助F检验。

F检验是根据平方和分解式,从回归模型效果的角度进行验证。

平方和分解式有:

其中各项定义有:

通过以上的平方和分解式,我们成功把因变量的波动情况(SST)成功分解为两部分:(1)能够通过自变量x解释的部分(SSR);(2)不能由自变量x解释的部分(SSE);

因此构造F统计量如下:

在正态假设的前提下,当原假设成立时,上述的F统计量将服从自由度为(m,n-m-1)的F分布,当F大于临界值时,我们可以拒绝原假设,即认为在显著水平a下,回归方程的整体自变量x与因变量y有显著的线性关系。

(2)t检验

正如在F检验中介绍的,通过原假设,F检验只能说明整体变量X与Y之间有关系,但是并不能说明某个自变量x是否与因变量y有关系,因此我们仍然需要t检验来判断每个自变量的显著性

由一元线性回归的t检验进行推广:假若我们需要检验某个变量xi是否显著(即对应的回归系数bi是否不为0),则可以生成原假设:

(3)偏F检验

事实上,即使是一元回归分析,我们也是可以使用F检验来判断回归方程的显著性,只是在一元回归分析中的t检验与F检验是完全等价的,而在多元回归分析中,则没有那么直接。

但是这是否意味着在多元回归分析中,t检验和F检验则是完全没有关系呢?答案显示是否定的。接下来,我们尝试从另一个视角,从总平方和分解的角度来考察自变量的显著性。

对于平方和分解公式,我们用回归平方和(SSR)反映自变量X对因变量Y的解释能力,那么假如我们要衡量某个特定的自变量x(j)的解释能力可以怎们做?

记对所有自变量得到回归平方和为SSR,剔除掉x(j)后,其他自变量得到回归方程的回归平方和为SSR(-j),显而易见地,变量x(j)对回归方程的贡献为:SSR(j)=SSR-SSR(-j),同样地,我们可以构造偏F统计量

(4)决定系数

让咱们再次回到平方和的分解公式:

如我们在F检验中所讨论的,在整个分解式中,回归平方和(SSR)反映的是能够通过自变量x解释的部分,因此非常直观地,我们可以认定回归平方和所占的比重越大,则残差平方和越小,就越能证明回归的效果越好。

因此,我们不妨就把回归平方(SSR)和与总平方和(SST)的比值定义为决定系数,一般记作R方。

但值得注意的是,R方虽然经常被用作与评估线性回归模型的拟合好坏,但是却也存在着明显的不足:例如自变量越多,R方总是不减(事实上,随着自变量数目的增加,R方一般都是会增加)的,而不管这个自变量本身是否真的有效。

证明:

正如上述所证明的,随着自变量个数的增加,决定系数也随之增大,当自变量足够多的情况下,决定系数将表现得足够的“好”。极端情况下,当需要估计参数的数量与样本数量一致时,决定系数将能够达到1.

实际上,这种“好”是通过增加模型复杂度(也意味着牺牲了了残差自由度)所得到的,而随着模型复杂度越高,我们模型过拟合的情况可能就越严重,泛化能力就越差。关于模型过拟合的问题,浩彬老撕会在后面单独写一篇文章详细介绍。

因此为了避免这种无用的假象,我们需要在决定系数公式当中引入惩罚项,对于这个增加惩罚项的决定系数,我们一般称之为调整决定系数:

从公式可以看到,调整的R^2可以是一个负数,它总是小于/等于R方。另外不同于原有的R方,它只有在引入真正有助于分析的变量时,它才会得到增加。

问题(3)变量选择

正如我们所了解到的,并不是所有输入到模型的自变量x都能对因变量y产生显著作用,这就引出了咱们关于多元回归分析的第三个问题,怎么选择变量构建合适的方程。

一个显而易见的方法是,根据所有候选变量所形成的子集,求出所有可能的方程,再根据本文前面所提供的模型选择标准,例如调整r方,选择最优模型。

但该方法一个最大的问题是,对于存在m个变量的场景,我们需要构建(2^m)-1个方程组,显然,当自变量个数m十分大的时候,这是十分困难的。

因此人们为了能够更加简便快速的选择方程,提出了“前进法”,“后退法”以及“逐步回归法”。

实际上,上述的各种方法的核心在于借助于检验标准,控制自变量的进出,而这里的标准,实际上就是咱们在前面介绍的偏F检验。

(1)前进法:

前进法是一个变量由少到多的过程,它根据变量准入标准,每一步引入一个当前最重要的自变量,直至引入所有合乎标准的变量为止。具体做法如下:

(2)后退法

后退法与前进法的思想相反,它是一个变量由多到少的过程,后退法首先利用全部m个自变量建立全模型回归方程,再利用检验标准逐个剔除最不重要的变量,具体做法如下:

(3)逐步回归法

前进法和后退法都存在一个明显的不足,那就是变量的引入后无法再剔除(前进法)/变量被剔除后(无法再被引入),即所谓的“终身制”

实际上,假定我们的的自变量间完全独立的话,上述前进法和后退法的“终身制”都是没有问题的,但在实际应用当中,我们的自变量往往存在着一定的相关关系,那么这就会带来问题了。

例如在前进法中,某个变量可能一开始是因为通过显著性检验而进入了方程,但在我们引入其他自变量后,这个变量可能就会显得不显著,但是这时候我们却没有办法将它重新剔除出模型了。

为了能够吸收前进法以及后退法的优点,因此提出了逐步回归法。逐步回归法的具体思想,实际上是在前进法的基础上,每当回归方程引入新的自变量后,都对方程中现有的变量重新检验,当发现有自变量不显著的情况下,则会将其重新剔除,具体做法如下:

感谢“R语言中文社区”提供转载

1

END

【实时分析型数据库】缔造者

国际领先的核心基础数据库技术

为大数据应用提供实时分析技术支持

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180906A1CU3Y00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券