楼主: jpld
11890 2

[学习分享] R多元线性回归容易忽视的几个问题(2)多重共线性的克服 [推广有奖]

  • 2关注
  • 50粉丝

讲师

2%

还不是VIP/贵宾

-

威望
0
论坛币
1268 个
通用积分
2.1233
学术水平
120 点
热心指数
120 点
信用等级
99 点
经验
1249 点
帖子
192
精华
0
在线时间
271 小时
注册时间
2009-5-29
最后登录
2022-3-1

楼主
jpld 发表于 2015-12-10 14:07:48 |只看作者 |坛友微信交流群|倒序 |AI写论文
相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

书接上回

如果存在着严重的多重共线性,则需要使用合适的方法尽量地降低多重共线性,有两种比较常用的方法:

一、逐步回归

逐步回归主要分为向前逐步回归(forward)、向后逐步回归(backward)和向后向前逐步回归(both)。逐步回归本身并不是一种新的回归或者参数的估计方法,所用到的参数估计方法都是原来的,是从众多的变量中选出最优模型的变量的一套方法。

即假如因变量Y ,4 个自变量分别是X1 ,X2 , X3 ,X4 。当所有自变量都进入到模型中时,Y =α +β1X1+β2X2 +β3X3 +β4X4 +μ 。现在是如何利用逐步回归方法从中选取最优的模型?

向前逐步回归的思路是逐个引入变量。具体来讲是,先用因变量与每个自变量都进行回归,选取最优的模型,假如第一步选取的最优模型是Y =α +β1X1 ;接着在第一步的最优模型的基础上,从剩余的变量X2X3 X4 中每个分别加入到第一步的最优模型中,得Y =α +β1X1 +βj Xj j = 0,2,3,4j = 0即为Y =α +β1X1 ,比较这四个模型,如果发现模型Y =α +β1X1 +β3X3最优;接着再在第二步的最优模型Y =α +β1X1 +β3X3 上,从剩余的变量X2X4中每个分别加入到第二步的最优模型中,得Y =α +β1X1+β3X3+βjXjj = 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, ...)

1.png

向前逐步回归的最优模型是把所有自变量都引入模型,没有剔除任何变量。

2.png

向后逐步回归中,从AIC最小的变量依次逐步剔除了农业,建筑业,受灾三个变量,第四步不剔除变量时最优,即最终模型中包含工业,人口,消费三个变量。

二、岭回归

当解释变量之间存在多重共线性时,即XX 0,则Var(βˆ) 2 (XX)1将会增大,原因是XX接近奇异。如果将XX加上一个正常数对角阵λ I λ > 0I 为单位矩阵)即XX I,使得 XXI 0的可能性比 XX 0的可能性更小,那么XX I接近奇异的程度就会比XX小的多,这就是岭回归的最初想法。

R里MASS包的lm.ridge()函数可以用来做岭估计,其用法与lm()用法类似。

可以证明β 的岭回归估计为βˆ (λ) = (X’XI)-1 XY

λ 称为岭参数.岭估计的关键是选取岭参数λ,岭迹法是选取岭参数λ的常用方法之一。若记βˆ (λ)β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,。同时把不同参数的估计值βˆ (λ )估计出来,画出岭迹图。如下:

3.png

λ取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()函数中,就可以估计出相应的岭估计结果。

本节完,下节开始讲异方差性问题。、


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:多元线性回归 多重共线性 线性回归 多重共线 共线性 backward forward 因变量 自变量 模型

本帖被以下文库推荐

沙发
958163533 在职认证  发表于 2016-1-10 22:06:05 |只看作者 |坛友微信交流群
如果是面板数据的 一组自变量 如何判断他们间的共线性

使用道具

藤椅
weixiaoyan 学生认证  发表于 2017-1-2 12:54:40 |只看作者 |坛友微信交流群
这样就可以客服共线性了吗?可是回归的结果用vif()还是有强共线性啊?还有,检验它的误差独立性也是不独立的?怎么办??

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-9 00:16