头图

01.前言

前面我们讲过了多元线性回归。这一篇我们来讲讲逐步回归。什么是逐步回归呢?就是字面意思,一步一步进行回归。

我们知道多元回归中的元是指自变量,多元就是多个自变量,即多个x。这多个x中有一个问题需要我们考虑,那就是是不是这多个x都对y有作用。答案就是有的时候都管用,有的时候部分管用。那对于那些没用的部分我们最好是不让它加入到回归模型里面。我们把这个筛选起作用的变量或者剔除不起作用变量的过程叫做变量选择。

我们刚提到自变量有用没用,那怎么来评判一个自变量到底有用没用呢?判断依据就是对自变量进行显著性检验。具体方法是将一个自变量加入到模型中时,有没有使残差平方和显著减少,如果有显著减少则说明这个变量是有用的,可以把这个变量加入到模型中,否则说明时无用的,就可以把这个变量从模型中删除。有没有显著减少的判断标准就是根据F统计量来判断。

关于判断F统计量的显著性我们在方差分析里面讲过,大家可以去看看。

变量选择主要有:向前选择、向后踢出、逐步回归、最优子集等,我们这一篇主要讲前三种。

02.向前选择

向前选择可以理解成从零开始选择,因为模型最开始的时候是没有自变量的,具体的步骤如下:

Step1:拿现有的k个变量分别和y建立回归模型,最后会得到k个模型以及每个模型中变量对应的F统计量和其p_value,然后从显著的模型中挑选出F统计量最大模型对应的自变量,将该自变量加入到模型中,如果k个模型都不显著,则选择结束。

Step2:通过第一步我们已经得到了一个显著性变量,并把这个变量加入到了模型中。接下来再在已经加入一个变量的模型里面继续分别加入剩下的变量,能够得到k-1个模型,然后在这k-1个模型里面挑选F值最大且显著的变量继续加入模型。如果没有显著变量,则选择结束。

重复执行上面两步,直到没有显著性变量可以加入到模型为止,这就是向前选择。

03.向后剔除

向后剔除是与向前选择相对应的方法,是向前选择的逆方法,具体的步骤如下:

Step1:将所有的自变量都加入到模型中,建立一个包含k个自变量的回归模型。然后分别去掉每一个自变量以后得到k个包含k-1个变量的模型,比较这k个模型,看去掉哪个变量以后让模型的残差平方和减少的最少,即影响最小的变量,就把这个变量从模型中删除。

Step2:通过第一步我们已经删除了一个无用的变量,第二步是在已经删除一个变量的基础上,继续分别删除剩下的变量,把使模型残差平方和减少最小的自变量从模型中删除。

重复上面的两个步骤,直到删除一个自变量以后不会使残差显著减少为止。这个时候,留下来的变量就都是显著的了。

04逐步回归

逐步回归是向前选择和向后踢除两种方法的结合。是这两种方法的交叉进行,即一遍选择,一边剔除。

逐步回归在每次往模型中增加变量时用的是向前选择,将F统计量最大的变量加入到模型中,将变量加入到模型中以后,针对目前模型中存在的所有变量进行向后剔除,一直循环选择和剔除的过程,直到最后增加变量不能够导致残差平方和变小为止。

关于逐步回归的Python实现,网上有很多现成代码的,只要原理清楚了,代码就很好懂了。


张俊红
1 声望3 粉丝