R vif() 以及 step()

Posted zijidefengge

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R vif() 以及 step()相关的知识,希望对你有一定的参考价值。

library(package="car")
data <- read.csv("C:\\users\\mike1\\desktop\\data\\RData\\hald水泥数据.csv", header=T, sep=",",fileEncoding = "utf-8", stringsAsFactors = FALSE)
data1 <- data[2:dim(data)[2]]
data1

cor(data1)
scatterplotMatrix(data1, main="correlation")

result <- lm(y~., data=data1)
summary(result)

vif(result)  # we can directly use the function not like python class
step(result,direction="forward")
step(result,direction="backward")
step(result, direction="both")

myStep <- step(result, direction="both")
myStep1 <- step(result,direction="backward",trace=2)


summary(myStep)
summary(myStep1)



vif(myStep)

 

共线性,显示各变量之间有强相关,vif()函数在 car包中, 而step() 函数内置。

技术图片

 

 

偏相关图

技术图片

 

相关系数图:

技术图片

 

逐步回归图

技术图片

 

 

技术图片

 

 

以上只截取了部分图,但是结果与书上的不一样。最后虽然使用的是逐步回归,但是有一个系数不显著,不知道为什么没把 x4.1这个变量去掉,只能手动选择x1, x2 作为变量。

 

以上是关于R vif() 以及 step()的主要内容,如果未能解决你的问题,请参考以下文章

在 R 中:如何将数据框索引作为列? [复制]

R计算方差膨胀因子(VIF,Variance Inflation Factor)计算并解读VID与共线性(Multicollinearity)的关系实战

看R语言建立回归分析,如何利用VIF查看共线性问题

简单来说,为啥二元结果回归模型没有 VIF?

R语言使用car包的vif函数计算方差膨胀因子,并基于方差膨胀因子开方后和阈值的判断来确认模型特征(预测变量)之间是否存在多重共线性(Multicollinearity)

有人可以解释以下 R 代码片段吗? [关闭]