R数据分析:逐步回归的做法和原理,案例剖析

article/2025/8/17 23:57:49

做回归的时候经常头痛的一个问题就是变量的选择,好多人一放一大堆变量但是结果做出来都没意义,这个时候你可以试试让算法给你选择最优的自变量组合哟。

那么今天要写的就是回归时筛选变量的逐步法:

The stepwise regression (or stepwise selection) consists of iteratively adding and removing predictors, in the predictive model, in order to find the subset of variables in the data set resulting in the best performing model, that is a model that lowers prediction error.

逐步法又分三种策略:

  1. 前进:就是把变量按照贡献大小一个一个的往回归模型中放,直到所有自变量都是显著的为止。
  2. 后退:就是把所有的自变量都放进去然后把贡献小的自变量一个一个的往出来取,直到所有的自变量都显著。
  3. 逐步Stepwise selection:这个就是把两种方法结合起来,先是把贡献大的变量一个一个放(前进),所有变量放完了又把没有贡献的取出来(后退)。

R语言实操

在R中能做逐步回归的方法有很多,比如:

  • stepAIC() [MASS 包]
  • regsubsets() [leaps 包]
  • train() [caret 包]

今天我还是给大家写一个例子,这个例子我们用train来做,train()有一个可选参数 method,这个参数可以有以下3个选择:

  • "leapBackward", to fit linear regression with backward selection后退
  • "leapForward", to fit linear regression with forward selection前进
  • "leapSeq", to fit linear regression with stepwise selection 逐步

我们用到的数据为R自带的Swiss数据集,里面有6个变量:

 

我想用其余5个变量来预测Fertility,但是5个有点多,我想用逐步回归选一选

我要选出一个最好的自变量组合来预测Fertility:

step.model <- train(Fertility ~., data = swiss,method = "leapSeq", tuneGrid = data.frame(nvmax = 1:5),trControl = train.control
)
step.model$results

运行上面的代码就可以输出如下结果:

 

我们把自变量的最大个数nvmax规定为5,所以我们会跑出来不同自变量个数的最佳自变量组合的模型结果:

the function starts by searching different best models of different size, up to the best 5-variables model. That is, it searches the best 1-variable model, the best 2-variables model, …, the best 5-variables models.

我们需要根据模型的RMSE和MAE对模型进行选择,可以看到模型5的RMSE和MAE是最小的,所以最好的模型就是5个变量都放进去,当然了,你不愿意自己选,也可以直接输出最好的模型:

step.model$bestTune

 

结果显示依然是模型5最好。

那么模型到底怎么选出来的呢?

summary(step.model$finalModel)

 

从输出结果可以看到自变量的选择过程,如果只要一个变量那么最好的选择就是Education,如果放两个自变量,那么最好的选择就是Education和Catholic。以此类推。。

那么模型的系数是多少呢?

coef(step.model$finalModel, 5)

 

还有,既然变量都给你选好了,我们直接用lm法也可以得到模型系数的呀:

lm(Fertility ~ Agriculture +Examination+ Education + Catholic + Infant.Mortality, data = swiss)

 

模型系数一摸一样。

小结

今天给大家写了逐步回归的做法,感谢大家耐心看完,自己的文章都写的很细,代码都在原文中,希望大家都可以自己做一做,请关注后私信回复“数据链接”获取所有数据和本人收集的学习资料。如果对您有用请先收藏,再点赞转发。

也欢迎大家的意见和建议。

如果你是一个大学本科生或研究生,如果你正在因为你的统计作业、数据分析、论文、报告、考试等发愁,如果你在使用SPSS,R,Python,Mplus, Excel中遇到任何问题,都可以联系我。因为我可以给您提供好的,详细和耐心的数据分析服务。

如果你对Z检验,t检验,方差分析,多元方差分析,回归,卡方检验,相关,多水平模型,结构方程模型,中介调节,量表信效度等等统计技巧有任何问题,请私信我,获取详细和耐心的指导。

If you are a student and you are worried about you statistical #Assignments, #Data #Analysis, #Thesis, #reports, #composing, #Quizzes, Exams.. And if you are facing problem in #SPSS, #R-Programming, #Excel, Mplus, then contact me. Because I could provide you the best services for your Data Analysis.

Are you confused with statistical Techniques like z-test, t-test, ANOVA, MANOVA, Regression, Logistic Regression, Chi-Square, Correlation, Association, SEM, multilevel model, mediation and moderation etc. for your Data Analysis...??

Then Contact Me. I will solve your Problem...

加油吧,打工人!

猜你喜欢:

R数据分析:逻辑斯蒂回归与泊松回归

R数据分析:多分类逻辑回归

R数据分析:多元逻辑斯蒂回归的做法

R数据分析:线性回归的做法和优化实例

R数据分析:如何做逻辑斯蒂回归

python机器学习:线性回归中的哑变量转换

Python机器学习入门:线性回归实例操练


http://chatgpt.dhexx.cn/article/1Ou2ttoo.shtml

相关文章

回归分析(stata实例详细解答过程)

现有某电商平台846条关于婴幼儿奶粉的销售信息&#xff0c;每条信息由11个指 标组成。其中&#xff0c;评价量可以从一个侧面反映顾客对产品的关注度。 请对所给数据进行以下方面的分析&#xff0c;要求最终的分析将不仅仅有益于 商家&#xff0c;更有益于宝妈们为宝贝选择适合…

线性回归案例及其分析

一、一元线性回归之轿车价格案例 % clear all % clc % x1:10; % y[2650,1942,1493,1086,766,539,485,291,224,202]; % for i1:10 % plot(x(i),y(i),or); % hold on % end % xlabel(x); % ylabel(y); 作出图像&#xff1a; 发现指数关系&#xff0c;我们另外令Zlny cl…

线性回归案例分析

本案例是kaggle共享单车的比赛案例&#xff0c;先对数据集介绍 Instant 记录号 Dteday&#xff1a;日期 Season&#xff1a;季节 1春天 2夏天 3秋天 4冬天 yr&#xff1a;年份&#xff0c;(0: 2011, 1:2012) mnth&#xff1a;月份( 1 to 12) hr&#xff1a;小时 (0 to 23) holi…

【SPSS】回归分析详细操作教程(附案例实战)

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

案例:回归分析-R实现

作者 | 结实 来源 | DATA江湖 1&#xff09;业务需求&#xff1a; 某牙膏制造企业为了更好的拓展产品市场&#xff0c;有效管理库存&#xff0c;董事会要求销售部门根据市场调查&#xff0c;找出公司生产牙膏销售量与销售价格以及广告投入等之间的关系&#xff0c;从而预测出在…

SPSS回归分析案例

SPSS回归分析案例 1.应用最小二乘法求经验回归方程 1.1数据导入 首先将数据导入SPSS如下&#xff1a; 1.2线性回归条件的验证 我们需要验证线性回归的前提条件&#xff1a; 线性&#xff08;散点图&#xff0c;散点图矩阵&#xff09;独立性正态性&#xff08;回归分析的过…

回归分析——简单线性回归实例讲解(SPSS)

什么是回归分析&#xff1f; 回归分析是研究自变量与因变量之间数量变化关系的一种分析方法&#xff0c;它主要是通过因变量Y与影响它的自变量Xi&#xff08;i1,2,3…&#xff09;之间的回归模型&#xff0c;衡量自变量Xi对因变量Y的影响能力的&#xff0c;进而可以用来预测因…

多分类logit回归案例分析

在研究X对Y的影响时&#xff0c;因变量Y有时是分类变量&#xff0c;这时如果还想分析影响关系可以使用logit回归&#xff0c;常见的logit回归包括&#xff0c;二元logit回归&#xff08;二项logit回归&#xff09;、多分类logit回归以及有序logit回归。三者的区别如下&#xff…

超详细机器学习-线性回归案例(正规方程、梯度下降、岭回归)

一、线性回归 定义 线性回归通过一个或者多个自变量与因变量之间之间进行建模的回归分析。其中特点为一个或多个称为回归系数的模型参数的线性组合。 分类 一元线性回归&#xff1a;涉及到的变量只有一个。 多元线性回归&#xff1a;涉及到的变量两个或两个以上。 公式 图例…

回归分析方法应用实例1

在制定运动员选材标准时&#xff0c;理论上要求先对不同年龄的运动员&#xff0c;各测试一个较大的样本&#xff0c;然后&#xff0c;计算出各年龄的平均数、标准差&#xff0c;再来制定标准。 有时尽管各年龄组的样本含量n都较大&#xff0c;但是&#xff0c;计算出的各年龄…

回归分析案例分析全流程

一、案例说明 1.案例数据 在“工资影响因素”的调查问卷中&#xff0c;调查了每个人的起始工资、工作经验、受教育年限、受雇月数、职位等级以及当前工资六个方面。 2.分析目的 目的是建立以当前工资为因变量的回归模型&#xff0c;并得出结论。[案例来源于&#xff1a;SPS…

1.1 一元线性回归分析案例

#将pyplot字体转化成中文 matplotlib.rcParams[font.family] Microsoft YaHei plt.rcParams[font.size] 12 # 设置字体大小 plt.rcParams[axes.unicode_minus] False # 设置正常显示负号案例背景&#xff1a;寻找房屋面积与价格的关系并进行预测图 #需要的包 import matp…

Spring WebFlux (6): RSocket 服务实现

RSocket官网&#xff1a;https://rsocket.io/ RSocket是一种二进制协议&#xff0c;可用于字节流传输&#xff0c;例如TCP&#xff0c;WebSockets和Aeron。 提供了四中交互模式&#xff1a; request/response (stream of 1) 请求/响应&#xff08;单响应&#xff09;大多数请…

HTTP协议的挑战者:RSocket

点击蓝色“程序猿DD”关注我 回复“资源”获取独家整理的学习资料&#xff01; 1. 简介 RSocket是一种二进制的点对点通信协议&#xff0c;是一种新的网络通信第七层协议。旨在用于分布式应用程序中。从这个意义上讲&#xff0c;RSocket是HTTP等其他协议的替代方案。它是一种基…

使用 RSocket——服务端主动调用客户端方法

1. 编写客户端接收请求的逻辑 我们可以在初始化 Rsocket 实例的时候指定客户端可以被调用的方法&#xff0c;使用 acceptor() 指定可被调用的方法和方法使用的通信模型类型&#xff1a; 通信类型为 RequestResponse 时&#xff1a; .acceptor(SocketAcceptor.forRequestRespo…

RSocket 与 gRPC性能对比

几乎每次我向观众介绍RSocket时&#xff0c;都会有人问这个问题&#xff1a;“ RSocket与gRPC相比如何&#xff1f;” 今天我们要找出答案。 搭建平台 插座 RSocket在应用程序网络上实现反应式语义。它是一种网络协议&#xff0c;可端对端实施反压力和其他反应流概念。 gR…

浅谈RSocket与响应式编程

简介&#xff1a; RSocket是高效一个二进制的网络通讯协议&#xff0c;能够满足很多场景下使用。另外&#xff0c;RSocket也是一个激进的响应式捍卫者&#xff0c;激进到连API都跟响应式无缝集成。本文我们将和大家分享RSocket与响应式编程。 作者 | 素渡 来源 | 阿里技术公众号…

阿里雷卷:RSocket从入门到落地,RSocket让AJP换发青春

考虑很久&#xff0c;决定还是写一下这篇文章&#xff0c;主要是 AJP 技术太老&#xff0c;我只能说 Long long ago &#xff0c;估计我在用这个技术的时候&#xff0c;很多同学小学还没有毕业。但是没有问题&#xff0c;这篇文章只是一个架构启发&#xff0c;不会浪费你时间让…

云原生实践之 RSocket 从入门到落地:Servlet vs RSocket

技术实践的作用在于&#xff1a;除了用于构建业务&#xff0c;也是为了验证某项技术或框架是否值得大规模推广。 本期开始&#xff0c;我们推出《RSocket 从入门到落地》系列文章&#xff0c;通过实例和对比来介绍RSocket。主要围绕RSocket如何实现Polyglot RPC、Service Regi…

RSocket 基于消息传递的反应式应用层网络协议

下面基于RSocket的一些主要特性分别做一下介绍&#xff0c;并和HTTP之类的常见协议进行比较&#xff1a; Multiplexed, Binary Protocol 多路复用的二进制协议Bidirectional Streaming 双向流Flow Control 流控制Socket Resumption 连接恢复Message passing 消息传递模型Trans…