#-----------多重共线性的处理------------
load("D:\\文件\\2022下(大三上)\\classR\\colinearity.RData")
lin # 数据
plot(lin[,2:3]) #x1、x2散点图
#作线性回归-->多重共线性的危害
fit=lm(y~x1+x2,data=lin)
summary(fit)
#识别多重共线性
#1.相关系数法
#2.方差膨胀系数法
install.packages("car")
library(car)
vif(fit)
#处理方法(消除多重共线性)--主成分回归*,岭回归,逐步回归*
#主成分回归
lin
lin2<-lin[,2:3] #将自变量提出来
pr<-princomp(lin2,cor=T,scores=T) #对自变量做主成分分析
summary(pr,loadings=T)
pr$scores[,1] #第一主成分得分 or predict(pr)[,1]
lm<-lm(y~pr$scores[,1],lin) #建立因变量和第一主成分得分间的线性回归模型
lm
scale(lin[,2]) # scale(lin[,2], center = TRUE, scale = TRUE)
scale(lin[,3])
scale(lin)
#逐步回归分析
load("D:\\文件\\2022下(大三上)\\classR\\exercise\\movie.RData")
lm.sol=lm(Box~1+Score+Cost+Days+Age+Baidu,data=movie)
summary(lm.sol)
vif(lm.sol)
step(lm.sol,direction=c("backward")) #逐步向后回归
step(lm.sol,direction=c("both")) # 逐步向前向后回归
#------------练习-----------------
head(movie)
lm.sol2=lm(Box~Cost,data=movie)
step(lm.sol2,Box~Score+Cost+Days+Age+Baidu,direction="forward") # 此处不可用~.
step(lm.sol2,Box~Score+Cost+Days+Age+Baidu,direction="both")