书接上回
如果存在着严重的多重共线性,则需要使用合适的方法尽量地降低多重共线性,有两种比较常用的方法:
逐步回归
逐步回归主要分为向前逐步回归(forward)、向后逐步回归(backward)和向后向前逐步回归(both)。逐步回归本身并不是一种新的回归或者参数的估计方法,所用到的参数估计方法都是原来的,是从众多的变量中选出最优模型的变量的一套方法。
即假如因变量Y,4 个自变量分别是X1 ,X2,X3,X4。当所有自变量都进入到模型中时,Y=α+β1X1+β2X2 +β3X3 +β4X4 +μ 。现在是如何利用逐步回归方法从中选取最优的模型?
向前逐步回归的思路是逐个引入变量。具体来讲是,先用因变量与每个自变量都进行回归,选取最优的模型,假如第一步选取的最优模型是Y=α+β1X1+μ;接着在第一步的最优模型的基础上,从剩余的变量X2,X3,X4中每个分别加入到第一步的最优模型中,得Y=α+β1X1+βjXj+μ,j=0,2,3,4,j=0即为Y=α+β1X1+μ ,比较这四个模型,如果发现模型Y=α+β1X1 +β3X3+μ 最优;接着再在第二步的最优模型Y=α+β1X1+β3X3+μ 上,从剩余的变量X2,X4中每个分别加入到第二步的最优模型中,得Y=α+β1X1+β3X3+βjXj+μ,j=0,2,4,比较这三个模型,如果 j = 0时,模型最优,则最终选取的最优模型是Y=α+β1X1+β3X3+μ向后逐步回归的思路是先引入全部自变量,然后逐个剔除不重要的变量,其剔除变量的思路和向前逐步回归的思路类似。向后向前逐步回归先逐步剔除变量,但可以后面的步骤中重新引入原先被剔除的变量,其方向是双向的,而向后逐步回归的自变量一旦被剔除后,在后面的步骤中就不会被重新引入,是单向的。
注意,上文所指的最优模型一般通过一些准则来确定,比如F 值、可决系数R2、
AIC 等。
继续上篇提到的财政收入影响因素的例子:
首先介绍一下step函数的用法,它是属于stats包,使用之前需先加载。
step(object, scope,scale = 0, direction = c("both","backward", "forward"), trace = 1, keep = NULL, steps = 1000, k =2, ...)
向前逐步回归的最优模型是把所有自变量都引入模型,没有剔除任何变量。
向后逐步回归中,从AIC最小的变量依次逐步剔除了农业,建筑业,受灾三个变量,第四步不剔除变量时最优,即最终模型中包含工业,人口,消费三个变量。
岭回归
当解释变量之间存在多重共线性时,即X′X ≈ 0,则Var(βˆ) =σ 2 (X′X)−1将会增大,原因是X′X接近奇异。如果将X′X加上一个正常数对角阵λ I(λ>0,I为单位矩阵)即X′X+λI,使得 X′X+λI ≈ 0的可能性比 X′X ≈ 0的可能性更小,那么X′X+λ I接近奇异的程度就会比X′X小的多,这就是岭回归的最初想法。
R里MASS包的lm.ridge()函数可以用来做岭估计,其用法与lm()用法类似。
可以证明β 的岭回归估计为βˆ(λ) = (X’X+λI)-1X’Y其中λ 称为岭参数.岭估计的关键是选取岭参数λ,岭迹法是选取岭参数λ的常用方法之一。若记βˆ (λ)为βiˆ (λ )的第i个分量,它是λ 的一元函数。当λ 在[0,∞)上变化时,βˆ (λ)的图形称为岭迹(ridge trace)。βˆ (λ )的每个分量βj ˆ(λ ) 的岭迹画在同一个图上,根据岭迹的变化趋势选择λ值,使得各个回归系数的岭估计大体上稳定,并且各个回归系数岭估计值的符号比较合理并符合实际。
lm.r是属于MASS包的,用法和lm类似
> lm.r<-lm.ridge(revenue~industry+agriculture+construction+consumption+pop+disaster,data=dat)
> lm.r
industry agriculture construction consumption
6.821406e+04 1.296967e-01 -7.065467e-02 4.465321e-02 6.011086e-01
pop disaster
-7.020226e-01 4.323570e-02
不指定λ值时,默认为0,结果和OLS一致。下面生成一个lambda序列,从0到0.3,间隔0.001,。同时把不同参数的估计值βˆ (λ )估计出来,画出岭迹图。如下:
当λ取0.25-0.3之间时,参数的估计大致趋于稳定。
> select(lm.ridge(revenue~industry+agriculture+construction+consumption+pop+disaster,data=dat,lambda=seq(0,0.3,0.001)))
modified HKB estimator is 0.003136352
modified L-W estimator is 0.002329019
smallest value of GCV at 0.004
通过select函数可以选取更为精确的岭参数,本例中我们取λ=0.004
> lm.ridge(revenue~industry+agriculture+construction+consumption+pop+disaster,data=dat,lambda=0.004)
industry agriculture construction consumption pop disaster
5.662106e+04 1.439691e-01 -3.539058e-03 1.146925e-01 5.037839e-01 -5.970767e-01 4.829628e-02
再代入到lm.ridge()函数中,就可以估计出相应的岭估计结果。
本节完,下节开始讲异方差性问题。