数据分析中常见的七种回归分析以及R语言实现(二)---逐步回归

浏览: 2641

接着上篇文章,这里讲一下逐步回归,那么大家应该都知道逐步回归是什么样的作用了,就是为我们剔除一些不重要或者不显著的自变量,使得回归方程最优形式去预测因变量;其中主要思路将所有自变量按照对因变量Y的作用大小,显著程度,由大到小引入回归方程中;其中主要通过几个统计值来识别重要变量,可决系数,T值和AIC值,通过这三个值来添加和删除自变量来拟合模型。大概步骤这样,首先我们在实施每一步都要对引入方程的变量计算其偏回归平方和,为什么我们要计算偏回归平方和呢,这个好比偏相关系数一样,这个主要放映自变量和因变量之间的相关程度的偏差平方和,然后选择一个偏回归平方和最小的变量进行显著性检验,如果显著则保留,这时方程中其他的几个变量也都不需要剔除,因为最小偏差平方和都显著了,其他的更不需要了,相反,如果不显著,则要提出变量,然后按偏回归平方和小到大依次对方程中其他变量进行F检验,将对Y不显著的变量全部提出,保留的都是显著,接着再对未引入回归方程中的变量分别计算其偏回归平方和,并选取其中偏回归平方和最大的一个变量,同样进行显著性检验,显著则引入该变量进入方程,,这个过程一直下去,直到在回归方程中的变量都不能剔除而又无新变量可以引入时,逐步回归过程就结束了;按照其选择方式的可以分为三种,向前逐步回归法,每次增加一个自变量到模型中,直到添加变量不会使模型有所改进为止;向后逐步回归从模型包含所有自变量开始,一次删除一个变量,直到会降低模型质量为止;还有一种是是向前向后逐步回归,通常我们称之为逐步回归,就是我们上段讲一样,每次的引入然后重新评估变量,然后剔除对模型没有贡献的变量,一直到模型最优为止;

这里我们就使用R语言实战里面的代码给大家做个实例,这里使用的是MASS包中的stepAIC()函数可以实现逐步回归模型,这个依据的AIC准则,模型的话就使用我们第一篇文章中的模型作为参照

载入包和数据集

library(nutshell)

library(MASS)

data(team.batting.00to08)

查看前六行

head(team.batting.00to08)

Clipboard Image.png

数据成功载入,这时候我们进行向后逐步回归

runs.lm <- lm(runs~singles+doubles+triples+homeruns+walks+hitbypitch+sacrificeflies+stolenbases+caughtstealing,data=team.batting.00to08)

lm_back<-stepAIC(runs.lm,direction = "backward")

结果太长,分段截图,开始AIC值

Clipboard Image.png

最后得到AIC值已经结果式,AIC值的减少所以模型得到了优化,我们的逐步回归法是有效的

Clipboard Image.png

最后我们使用使用summary()函数打印模型结果

summary(lm_back)

Clipboard Image.png

从上图得知全部变量都显著有效,这里就说到这里,有什么问题的话下方评论一起交流

推荐 7
本文由 夏尔康 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

4 个评论

帮我看下这个 https://ask.hellobi.com/question/22725,谢谢。
决策树也来几篇,最近研究这个
至少要等着这个系列结束后再写了
请教一下如果单变量与因变量做回归的话系数为正,但是在加入变量的时候系数的正负改变(也就是单调性改变了),那么这个变量还可以不可以继续留在模型当中,会不会是因为多重共线性的影响,第二个问题是如果是因为多重共线性导致的,我们用什么方法能发现呢,我用的VIF函数很多都测不出,还望指点。

要回复文章请先登录注册