使用R语言进行多元线性回归分析-多重共线的诊断

一、数据集

序号X1x2x3x4Y序号X1x2x3X4Y
12666078.57831224472.51
229155274.31954182293.12
356850104.3111047426115.921
43184787.6111140233483.81
55263395.971266912113.311
655922109.2111368812109.410
771176102.73      

1、从中选取主要变量,建立与因变量y的回归方程;

2、考察因变量x1,x2,x3,x4是否存在多重共线性。

二、建立y与x1,x2,x3,x4的多元回归方程

x1<-c(26,29,56,31,52,55,71,31,54,47,40,66,68)
x2<-c(6,15,8,8,6,9,17,22,18,4,23,9,8)
x3<-c(60,52,50,47,33,22,6,44,22,26,34,12,12)
x4<-c(78.5,74.3,104.3,87.6,95.9,109.2,102.7,72.5,93.1,115.9,83.8,113.3,109.4)
y<-c(7,1,11,11,7,11,3,1,2,21,1,11,10)
df<-data.frame(y,x1,x2,x3,x4)
lm.reg<-lm(y~x1+x2+x3+x4,data=df)
summary(lm.reg)

从回归方程的结果可以看到,从回归方程系数的t检验的p值得出,只有变量x1,x4系数显著,x2和x3系数不显著。

三、共线性诊断,考察变量之间的共线性关系

共线性是指在进行多元线性回归时,自变量至简存在线性关系或近似线性关系,自变量的线下关系将会导致参数估计的误差增大,会产生不稳定的模型。通过计算回归方程的方差膨胀因子来测度模型的多重共线性问题。

基本介绍来自百度搜索

一般的标准是当方差膨胀因子VIF>10,表明模型存在较强的多重共线性。

下面使用R语言中的DAAG程序包中的vif()函数计算方程膨胀因子

library(DAAG)
vif(lm.reg,digits=5)

运行得到:

所有自变量的方差膨胀因子均小于10,无明显的共线性关系,但x1和x4的VIF值较大,

可以计算出x1和x4的相关系数为

 cor(x1,x4)
[1] 0.816252
有较强的相关性。

四、使用R语言中的逐步回归函数找到最优的回归方程。

lm.step<-step(lm.reg)

summary(lm.step)

运行得到:

使用step()函数得到最后的回归方程:

y=-23.49620-0.33742*x1--0.21628x2-0.52137x4

函数根据AIC信息量最小原则,最终过掉了变量x3,保留了自变量x1,x2,x4.

从检验结果中可以看到,回归方程和回归方程的系数显著,通过了F检验和t检验。

  • 20
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值