一、岭回归定义及作用
当解释变量矩阵出现严重的多重共线性是,用普通的最小二乘法估计效果将会不理想。为了解决这一问题,统计学家从模型和数据的角度考虑,采用回归诊断和自变量选择来克服多重共线性的影响。
二、岭回归的定义
四、岭迹回归
五、岭参数k的选择
六、代码展示
##第一步:收集数据,对数据进行预处理
data_3 <- read_excel("D:/桌面/应用回归分析/XXX.xls",sheet = 3)#读取表格中第3组数据集
#异常值、异方差、自相关性分析
lm3.1 <- lm(Y~.,data_3)#对原始数据进行初步拟合
rstudent(lm3.1)>3#异常值分析,分析其大于3倍方差的值
abse <- abs(resid(lm3.1))#计算残差
plot(x=1:19,abse,xlab='序列值',ylab='残差','o')
for (i in 1:6){
ct <- cor.test(as.numeric(as.character(data_3[[i]])),abse,method = 'spearman')
print(ct)}#进行等级相关性检验,p都大于0.05,不存在异方差
#岭回归分析
data3 <- data.frame(scale(data_3))
library(MASS)
ridge3 <- lm.ridge(Y~.-1,data=data3,lambda = seq(0,2,0.1)) #做岭回归,其中lamdas为岭回归参数k的所有取值
beta <- coef(ridge3) #将回归系数结果赋予beta
beta
k <- ridge3$lambda
plot(k,k,type = 'n',xlab='岭回归参数k',ylab = '岭回归系数',ylim = c(-1,1))
linetype <- c(1:5)
char <- c(18:24)
for ( i in 1:5) {
lines(k,beta[,i],type = 'o',lty = linetype[i],pch = char[i],cex = 0.75)}
legend(locator(1),inset = 0.5,legend = c("x1","x2","x3","x4","x5"),cex = 0.8,pch = char,lty = linetype)
#x3,x4不稳定
ridge2 <- lm.ridge(Y~.-X3-X4-1,data=data_3,lambda = seq(0,2,0.1)) #做岭回归,其中lamdas为岭回归参数k的所有取值
beta <- coef(ridge2) #将回归系数结果赋予beta
beta
k <- ridge2$lambda
plot(k,k,type = 'n',xlab='岭回归参数k',ylab = '岭回归系数',ylim = c(0,7))
linetype <- c(1:3)
char <- c(18:21)
for ( i in 1:3) {
lines(k,beta[,i],type = 'o',lty = linetype[i],pch = char[i],cex = 0.75)}
legend(locator(1),inset = 0.5,legend = c("x2","X3","x4","x6","7"),cex = 0.8,pch = char,lty = linetype)
七、结果展示
参数选择发现X3,X4存在多重共线性(即两线之间岭回归系数变化幅度较大),故选择删去,删去结果如下:
(标注有误,应为X1,X2,X5)
参考文献
应用回归分析(R语言版)电子工业出版社