R语言之岭回归xt7.6

第7章 岭回归

7.7 一家大型商业银行有多家分行,近年来,该银行的贷款额平稳增长,但不良贷款额也有较大比例的提高。为弄清楚不良贷款形成的原因,希望利用银行业务的有关数据做定量分析,以便找出控制不良贷款的方法。表7.5是该银行所属25家分行2002年的有关业务数据。
(1)计算y与其余4个变量的简单相关系数。
(2)建立不良贷款y对4个自变量的线性回归方程,所得的回归系数是否合理?
(3)分析回归模型的共线性。
(4)采用后退法和逐步回归法选择变量,所得的回归方程的回归系数是否合理,是否还存在共线性?
(5)建立不良贷款y对4个变量的岭回归。
(6)对(4)步剔除变量后的回归方程再做岭回归。
(7)某研究人员希望做y对各项贷款余额、本年累计应收贷款、贷款项目个数这3个自变量的回归,你认为这样做可行吗?如果可行应怎么做?

分行编号 不良贷款y(亿元) 各项贷款余额x1(亿元) 本年累计应收贷款x2(亿元) 贷款项目个数x3(亿元) 本年固定资产投资额x4(亿元)
1 0.9 67.3 6.8 5 51.9
2 1.1 111.3 19.8 16 90.9
3 4.8 173.0 7.7 17 73.7
4 3.2 80.8 7.2 10 14.5
5 7.8 199.7 16.5 19 63.2
6 2.7 16.2 2.2 1 2.2
7 1.6 107.4 10.7 17 20.2
8 12.5 185.4 27.1 18 43.8
9 1.0 96.1 1.7 10 55.9
10 2.6 72.8 9.1 14 64.3
11 0.3 64.2 2.1 11 42.7
12 4.0 132.2 11.2 23 76.7
13 0.8 58.6 6.0 14 22.8
14 3.5 174.6 12.7 26 117.1
15 10.2 263.5 15.6 34 146.7
16 3.0 79.3 8.9 15 29.9
17 0.2 14.8 0.6 2 42.1
18 0.4 73.5 5.9 11 25.3
19 1.0 24.7 5.0 14 13.4
20 6.8 139.4 7.2 28 64.3
21 11.6 368.2 16.8 32 163.9
22 1.6 95.7 3.8 10 44.5
23 1.2 109.6 10.3 14 67.9
24 7.2 196.2 15.8 16 39.7
25 3.2 102.2 12.0 10 97.1

rm(list=ls())

# ---- xt7.6 岭回归 ----
# ----(1)计算y与其余4个变量的简单相关系数。----
data7.6 <- read.csv('D:/rwork/应用回归/习题数据/表7-5.csv',head=TRUE)
names(data7.6)<-c('分行编号','y','x1','x2','x3','x4')
cor(data7.6[,-1])
# 由结果得到,Y与四个自变量的相关系数分别为0.844,0.732,0.689,0.519,
#  且都通过了显著性检验,说明y与其余4个变量是显著线性相关的。
#  同时也可以看出变量之间也存在一定的线性相关性。





# ----(2)建立不良贷款y对4个自变量的线性回归方程,所得的回归系数是否合理?----
lm7.6 <- lm(y~x1+x2+x3+x4,data=data7.6)
summary(lm7.6)
# 得到回归方程为y^=0.039x1+0.147x2+0.025x3-0.029x4-1.087,
qt(1-0.05,20)  #1.724718,t值~tα(n-p-1)
#  方程的自变量x2,x3,x4未通过t检验,说明回归方程不显著,
#  而且由实际意义出发,x4的系数不能是负的。所以所得的回归系数不合理。



# ----(3)分析回归模型的共线性。----
## 方差扩发因子法----
library(car)
vif(lm7.6)
#  所有自变量对应的VIF全部小于10,所以自变量之间不存在共线性。



# ----(4)采用后退法和逐步回归法选择变量,所得的回归方程的回归系数是否合理,是否还存在共线性?----
## 后退法----
lm7.6 <- lm(y~x1+x2+x3+x4,data=data7.6) #建立回归方程
lm7.6.back <- step(lm7.6,direction='backward')
#将模型的搜索范围定义为至多加入所有变量,至少包含常数项,使用前进法寻找最优回归模型
summary(lm7.6.back) #输出最优回归模型及其回归系数的显著性检验
# 其中,初始模型时全模型,接着剔除变量x3,
#  最优回归模型为y^=-0.972+0.041x1+0.149x2-0.029x4。




## 逐步回归法----
lm7.6 <- lm(y~x1+x2+x3+x4,data=data7.6) #建立回归方程
lm7.6_step <- step(lm7.6,direction='both') #初始模型包含所有变量
summary(lm7.6_step) #输出依据AIC选出的最优模型的结果
# 由输出结果可见,逐步回归筛选的最优子集为x1,x2,x4,但在显著性水平为0.05时x2.x4的回归系数不显著,
#  从上述输出结果可知,由最小的AIC值选出的模型在整体上最优,但是可能会包含不显著的变量。

# 故需要再删去不显著的变量x2,得到新的回归结果如下
summary(lm(y~x1+x4,data=data7.6))
# 从上述输出结果可知,回归方程为y^=-0.443+0.05x1-0.032x4,
#  所得X4的系数为负,不合理,说明存在共线性。逐步回归法得到的结果和后退法相同。



# ----(5)建立不良贷款y对4个变量的岭回归。----
datas <- data.frame(scale(data7.6[,2:6])) #对样本数据进行标准化处理并转换为数据框的格式存储
library(MASS)
ridge7.6 <- lm.ridge(y~.-1,data=datas,lambda=seq(0,3,0.1))
# 做岭回归,对于标准化后的数据模型不包含截距项,其中lambda为岭参数k的所有取值

beta <- coef(ridge7.6) #将所有不同岭参数所对应的回归系数的结果赋给beta
beta
# 结果中,第1列为岭参数k,其取值范围为0到3,步长0.1,共有31个k值。
# 第2至6列是数据标准化后的岭回归系数,其中第1行k=0的数值就是普通最小二乘估计的标准化回归系数。

## 绘制岭迹图
k <- ridge7.6$lambda #将所有岭参数赋给k
plot(k,k,type='n',xlab='岭参数k',ylab='岭回归系数',ylim=c(-2.5,2.5))
# 创建没有任何点和线的图形区域
linetype <- c(1:4)
char <- c(18:21)
for (i in 1:4){
  lines(k,beta[,i],type='o',lty=linetype[i],pch=char[i],cex=0.75) #画岭迹线
}
legend(locator(i),inset=0.5,legend=c('x1','x2','x3','x4','x5'),
       cex=0.8,pch=char,lty=linetype) #添加图例
# 由图知,x4由负变正,其他稳定,说明x4存在多重共线性,所以剔除x4



# ----(6)对(4)步剔除变量后的回归方程再做岭回归。----
# 根据(4)的分析,我们决定剔除x4,用y与其余x1,x2,x3做岭回归。
# 把岭参数的取值范围缩小为0到2,步长取0.2,继续计算:
ridge7.6_1 <- lm.ridge(y~.-x4-1,data=datas,lambda=seq(0,2,0.2)) #删除x4后做岭回归
beta1 <- coef(ridge7.6_1)
beta1
k1 <- ridge7.6_1$lambda

## 绘制岭迹图
plot(k1,k1,type='n',xlab='岭参数k',ylab='岭回归系数',ylim=c(-1,1))
linetype <- c(1:2)
char <- c(18:19)
for (i in 1:2)
  lines(k1,beta1[,i],type='o',lty=linetype[i],pch=char[i],cex=0.75)
legend(locator(1),inset=0.5,legend=c('x1','x2','x3'),
       cex=0.8,pch=char,lty=linetype)
# 由图可知,剔除x4之后,回归系数变化幅度减小了很多,且由图可知k值基本稳定。


# ----(7)做y对各项贷款余额x1、本年累计应收贷款x2、贷款项目个数x3这3个自变量的回归 ----
# 由(6)可知,y对x1、x2、x3的岭回归稳定,所以作y对x1、x2、x3的岭回归是可行的。




参考课本:应用回归分析(R语言版),何晓群编著

  • 29
    点赞
  • 176
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值