4000字三合一!Stata、SPSS、MATLAB实现多元线性回归详解!

        参加数学建模的小伙伴要注意了:多元线性回归几乎是所有分析方式里面最核心、最常用、最全面的模型,博主本科大致参加了10+次数模,还有一次正大杯市场调研赛,其中获得拿得出手的奖有9次,有5次都用到了多元线性回归——至于没有用到的4次,1次由于题材原因实在用不了任何多元分析的手段,3次是因为初学不太会用,直至达到学以致用的境界,才体会到前者的妙不可言。 

 其实这玩意没那么复杂,哪怕你数学不好也能学会怎么用,顾名思义:

  • 多元:多个变量、因素,很好理解
  • 线性:一次方程Ax+b,很好理解
  • 回归:研究随机变量之间的关系,概率论的东西

        所以多元线性回归,可以通俗、不严谨地理解为将多个自变量和一个因变量建立某种线性关系,由于是线性的,因此可以写出表达式。接下来我们详细来看~

目录

一.理论知识

1.闲谈

2.自变量与因变量

二.模型功能

1.写出线性表达式

2.预测

3.分析变量关联

三.实操步骤

1.Stata实现

2.SPSS实现

3.MATLAB实现

四. 实际样例分析


一.理论知识

        回归分析的任务就是, 通过研究自变量 X 和因变量 Y 的相关关系,尝试去解释 Y 的形成机制,进 而达到通过 X 去预测 Y 的目的。所谓的自变量X,是由一些列因素共同组成的(多个自变量)

1.闲谈

        从小大家就听师长们不断说,努力可以获取成功。从宏观上看这一价值观是没有问题的。随着年龄的增长,理科生逐渐产生了辩证思维, 这时候我们逐渐认识到并不是所有的努力都能归结为狭义上的成功的。

         这就是所谓的相关性不等于因果性的概念,所谓的相关只是一个量化的概念,当相关系数很高时,比如0.8,我们可以说努力的情况下80%的概率会成功,但我们不能保证百分百成功~
        归根结底,回归分析的是, 努力导致成功的这一概率是多少,而这个所谓的概率即努力和成功的相关性, 我们无法研究这个【必然】时,需要研究只是多少程度的【必然】~

2.自变量与因变量

        自变量是自己改变的量,因变量是因为自变量改变而改变的量,大家在小学的基础上理解依旧是大差不差的。在回归的角度,所谓的自变量X,即为解释变量,而Y则为被解释变量。回归的任务就是研究解释变量和被解释变量之间的关系~

二.模型功能

1.写出线性表达式

回归分析要去识别并判断: 哪些 X 变量是同 Y 真的相关,哪些不是。 在线性回归中,最终我们可以得到一个Y与多个X之间的线性表达式~

2.预测

预测模型顾名思义就是根据已知预测未知,这玩意没那么高大上的,本质就是将已知的X代入方程计算Y的过程~

3.分析变量关联

        去除了那些同Y 不相关的 X变量,那么剩下的,就都是重要的、有用的X变量了~在确定了重要的X变量的前提下,我们还想 赋予不同 X 不同的权重, 也就是不同的回归系数,进而我们可以知道不同变量之间的相对重要性。

纸上得来终觉浅,接下来博主带领大家做一道真题,2022的华数杯C题,这道比较简单,而且博主拿到一等奖还算有资质分享一下经验,2022的国赛C题玻璃那道,涉及到主成分回归——也就是先主成分分析再线性回归,稍微有点超纲,今天不做讲解~

三.实操步骤

看上面的第二问:他提到了8个工艺参数的组合,不难想到这是多变量,立即考虑多元线性回归!!!又说将预测的数据填入表中——是不是这就是博主前文说到的预测功能?这个所谓的结构变量,即为对应的厚度、孔隙率等上述3种~

原数据经过处理后得到上述结果,不过这里博主不想让大家浪费时间去了解这道题目的背景——重在讲方法。因此大家直接看下表就行:其中热风速度、接受距离为自变量,而另外3个为因变量:

热风速度接受距离厚度mm孔隙率(%)压缩回弹性率(%)
1200302.72596.1794.59
1000302.44595.7390.11
800352.36595.5890.2
800201.749490.12
1200352.72596.1785.73
800301.77594.1288.76
800352.01594.8282.19
1100352.8196.2891.49
900202.0294.8386.21
1100403.496.9382.88
900352.7596.783.05
900302.93596.4492.31
1200252.9696.4786.47
1000353.16596.789.29
1100302.52596.4384.24
1000202.0694.9387.12
900402.9196.4186.65
900252.0594.9182.65
1200403.84597.375.97
1000403.42596.9594.33
1200202.42595.6984.38
1100202.08594.9988.83
800402.8196.2883.2
1100253.10596.6483.82
1000252.11595.0680.98

        但是大家发现问题了:多元回归的理论中,不是应该是多对一吗?(多个自变量一个因变量)大家说的不错,因此,这里我们实际上是有3个方程:分别建立两个自变量对应三个因变量的方程!

1.Stata实现

博主用的是15SE版本的,如下图:

将保存在Excel中的数据导入Stata:

选择第一个:将第一行的数据导入为变量的名称!!!很重要

导入后右侧可以看到:

大家写论文嘛,可以添油加醋,通过如下代码可以获取相关数据的描述性统计

 summarize 热风速度 接受距离 厚度mm 孔隙率 压缩回弹性率

(上述均为各位自己的变量名!) 

然后通过regress关键字进行回归

regress 厚度mm 热风速度 接受距离

 注意:第一个是因变量,后面全是自变量,用空格分开~得到如下结果:

  • 其中,R方为0.7242,这个本质即为相关系数,大家只需要记住低于0.9/0.8就不太好了,最好不要拟合函数,出现这种情况,需要大家加入平方项或者交叉项,这里先不展开描述~
  • Coef对应的一列,即为线性方程中的系数,cons为常数项,因此上述得到的方程为:

厚度=0.002热风速度+0.053接受距离-1.074 

然后题干中不是给了待预测值吗?直接代入方程就能求解!

然后孔隙率和压缩回弹性率也同理,给大家看一下结果:

        非常遗憾哈,这几个相关系数R方——也就是大家另一种称呼法,拟合优度,都有点不下不上,竞赛汇总遇到这种0.7/0.8的,到是也能凑合用,不过博主参赛的几次,拟合优度都能达到0.9+,不论是多元线性回归、BP神经网络还是普通拟合,这里先留点悬念,下篇给大家说解决方式~ 

2.SPSS实现

如果不安装Stata也没关系,这里又更好用的SPSS,还是读入数据:

分析->回归->线性:

选择因变量,自变量:

 结果如下:

大家可以返回去看看,和Stata计算的一模一样——当然这是肯定的,如果连算法逻辑都写不明白,IBM肯定要裁掉他们的程序员了哈哈~

至于另外两个就不再赘述,一个道理~

3.MATLAB实现

说来也巧啊,这统计学语言就是比软工的高级语言容易,MATLAB也是用regress命令:

上述x1、x2、y1分别为热风速度、接受距离、厚度,具体代码如下:

[b,bint,r,rint,stats]=regress(y1,x1,,x2)

b即为系数,这个方法大家了解一下就行,不建议大家用~

四. 实际样例分析

第一次使用是2022年的华数杯,前面的数据不太对,毕竟已经25个月了。。。。如下的当时的获奖论文,大家可以参考~

 

 

第二次用是在2022年的国赛,实际上不是多元线性回归而是逻辑回归,不过大致理论一样,只不过结果只能存在0/1罢了。

22国赛中还有上文提到的主成分回归,这里我们叫线性概率模型,一个道理:

        说句题外话,如果大家选择C题或者统计大类的题目,如果能用到神经网络、动物优化(鲸鱼、狼群、蚁群优化)等类型的算法,大概率是可以省一保底的。博主当时这篇(也就是大致两年前吧,应该是2022.9.15左右) 用到了BP神经网络、K均值聚类、逻辑回归等,拿到省一但是有机会能拿到国二的——至于为什么是省一而非国二相信参加过的同志都知道原因,不过省一也能接受,就这样吧~

然后就是2022年的亚太赛(冬季),用多元回归研究什么全球温度的分布特征,不过只拿到了二等奖,亚太一等名额太少了~

        然后就是2023的美赛,美国著名的那个报纸游戏,因为精力不能全力以赴稿竞赛(懂的都懂)最后也只能拿到M奖,F和O如果不靠场外援助,大概率只有985对口专业的选手有这个正儿八经的实力~ 

        收官战就是2023的正大杯,还是省一(无语了),最搞笑的是我们学校有一队直接就把去年的作品拿出来重写参赛,好像是国二还是国三来着。。。各位选老师的时候一定要慎重, 努力和实力的意义在于你可以击败90%-95%的对手,剩下的5%~10%,看造化和power吧,哈哈。


写在最后:

        前面提到了如何解决拟合优度不高的问题,不打算在这篇讲解了,另开一篇~这篇的目的在于让大家从0分到70分——即如何以一个及格水平使用多元回归求解数学建模的问题——好吧,实际上有80分,肯定没这么低~

        另外注意的是:各位千万不敢原封不动地照搬我的写法哈,不然最后查重可要吃亏,这里放几张图就是给大家看一下大致的书写思路是什么。最近老有后台私信让我出数模的相关东西,估计是快到今年的国赛了各位冲刺呢吧?看了一下比赛是9月5号开始,尽量近期把我力所能及的东西更新完,希望对各位有所帮助~ 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/872295.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

分享7款实现社会实践报告AI生成论文网站

在当今社会,AI技术的快速发展极大地改变了我们的生活方式和工作方式。特别是在学术研究和写作领域,AI工具的应用已经变得越来越普遍。本文将详细介绍7款实现社会实践报告AI生成的论文网站,并重点推荐千笔-AIPassPaper。 1. 千笔-AIPassPaper…

Flink 1.14.*中flatMap,filter等基本转换函数源码

这里以flatMap,filter为例,介绍Flink如果要实现这些基本转换需要实现哪些接口,Flink运行时调用这些实现类的入口,这些基本转换函数之间的类关系 一、创建基本转换函数需要实现类继承AbstractRichFunction并实现特性接口1、RichFla…

批量为某跟空间下的pod添加env(例如标签)

1、修改kube-apiserver配置文件,添加PodNodeSelector参数: –enable-admission-pluginsPodNodeSelector # 多个参数,则用逗号隔开systemctl daemon-reload systemctl restart kube-apiserver 2、修改指定命名空间内容: kubec…

SprinBoot+Vue校园活动报名微信小程序的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue3.6 uniapp代码 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍:CSDN认证博客专家,CSDN平…

C# NX二次开发-获取体全部面

使用 UF_MODL_ask_body_faces 或获取一个体的全部面: 代码: theUf.Modl.AskBodyFaces(body.Tag, out var face_list);face_list.Foreach(x > x.NxListing()); 免责声明: 只用于参考,如果有什么问题不要找我呀。

Web开发的艺术:C#开发中实现代码简洁性与规范性的终极指南

一、变量的要求 变量名 1.简短有意义: 合适: student_count,student_ids,student_enable_list, water_price 不合适: numberOfItemsInTheCart, totalPriceOfTheOrderInTheShoppingCart,temp, data,list 2.变量名之间不要太像: 合适: totalAmount, disc…

NetSuite AI 图生代码

去年的ChatGPT热潮期间,我们写过一篇文章说GTP辅助编程的事。 NetSuite GPT的辅助编程实践_如何打开netsuite: html script notes的视图-CSDN博客文章浏览阅读2.2k次,点赞4次,收藏3次。作为GPT综合症的一种表现,我们今朝来探究下…

Kettle 锁表原因及解决办法【源码级分析】

文章目录 背景源码分析锁表场景1:资源库锁表锁表场景2:写日志锁表在哪里配置的kettle_log_table?官方解释自增 SQL 获取 BatchI 原理解决自增 SQL 获取 BatchID背景 Kettle 7.1.0 经常出现锁表的情况,体现为在数据库里有一条锁表 SQL,然后整个 Kettle 都无法运行。😂�…

【Python】简单的数据类型——int、float、bool、str

目录 1. 整数类型 int 2. 浮点数类型 float 3. 布尔类型 bool 4. 字符串 str 5. 类型转换 5.1 隐式类型转换 5.2 显示类型转换 6. 输出 6.1 print函数 6.2 格式化输出 7. 输入 1. 整数类型 int a 10 print(type(a)) print(type(-2))<class int> <class i…

HBase 部署及shell操作

HBase 数据库 一、HBase 概述1.1 HBase 是什么HBase 的特点 二、HBase 模型及架构2.1 HBase 逻辑模型2.2 HBase 数据模型2.3 HBase 物理模型2.3.1 列簇物理模型2.3.2 Rowkey 字段排序2.3.3 Region 存储到不同节点2.3.4 Region 结构 2.4 HBase 基本架构 三、搭建 HBase 分布式集…

ArcGIS栅格裁剪与合并,制作等高线

1、下载高程数据&#xff08;DEM&#xff09; https://mp.weixin.qq.com/s/ewlUUVV0PwdcspPGtSdCog 项目区域对应的卫片&#xff0c;也可以在谷歌地图里看大致经纬度范围 2、项目区域 确定项目区域&#xff0c;例如某个县区范围 3、栅格裁剪与合并 将DEM多个栅格数据合并&#…

DevOps学习笔记

记录以下DevOps学习笔记&#xff0c;这里是笔记的入口汇总&#xff0c;可以直观的看到所有的笔记&#xff0c;还没有入口的部分&#xff0c;在下正在努力编写中。 gitlab jenkins docker 1.docker安装 2.数据卷、挂载 artifactory 1.artifactory安装 2.artifactory使用 …

hyperf json-rpc

安装 安装docker hyperf 安装 hyperf-rpc-server-v8 &#xff08;服务端&#xff09; docker run --name hyperf-rpc-server-v8 \ -v /www/docker/hyperf-rpc-server:/data/project \ -w /data/project \ -p 9508:9501 -it \ --privileged -u root \ --entrypoint /bin/sh \…

使用 streamlink 把 m3u8 转为 mp4

问题描述&#xff0c; 背景&#xff0c; 来源&#xff1a; 下载 m3u8 ts —> 转为mp4, 按照以往的做法&#xff0c; 就是使用 python requests 一步一步地下载 m3u8, ts&#xff0c; 然后转换。 但是个人写的东西&#xff0c;毕竟问题比较多。 而且&#xff0c; 但是&…

2024国赛数学建模备赛|30种常用的算法模型之最优算法-非线性规划

1.1 非线性规划的实例与定义 如果目标函数或约束条件中包含非线性函数&#xff0c;就称这种规划问题为非线性规划问题。一般说来&#xff0c;解非线性规划要比解线性规划问题困难得多。而且&#xff0c;也不象线性规划有 单纯形法这一通用方法&#xff0c;非线性规划目前还没…

C#上位机使用Microsoft.Office.Interop.Excel和EPPlus库对Excel或WPS表格进行写操作

C#上位机使用Microsoft.Office.Interop.Excel和EPPlus库对Excel或WPS表格进行写操作 一、使用Microsoft.Office.Interop.Excel库 1、通过NuGet包管理器添加引用 按照下图中红框所示进行操作。 需要安装Microsoft.Office.Interop.Excel包 添加Microsoft Office 16.0 Object …

[全网首发]2024国赛数学建模ABCE题完整思路+py(matlab)代码+成品论文参考+持续更新

AB题详细思路(含问题一问题二模型) CE题问题一代码思路已经写好[pythonmatlab两种都会更新 需要完整版的看这里&#xff1a; 点击链接加入群聊【2024数学建模国赛资料汇总】&#xff1a;http://qm.qq.com/cgi-bin/qm/qr?_wv1027&klZncBILk30DuPRI1Bd8X-3Djv7ZVZyAv&…

python开发VTK入门

首先用pip命令安装VTK的python库&#xff1b; 需要一些时间&#xff0c;安装完成如下&#xff1b; 基本示例代码&#xff0c; import vtkcube vtk.vtkCubeSource() cube.SetXLength(100.0) cube.SetYLength(200.0) cube.SetZLength(300.0)mapper vtk.vtkPolyDataMapper() ma…

持续集成与持续部署(CI/CD)的深入探讨

在现代软件开发中&#xff0c;持续集成&#xff08;CI&#xff09;和持续部署&#xff08;CD&#xff09;已成为不可或缺的实践。这些方法旨在加快软件交付的速度&#xff0c;同时提高软件的质量和稳定性。通过CI/CD&#xff0c;开发团队可以频繁地将代码更改集成到主分支&…

瑞芯微RK3566鸿蒙开发板Ubuntu虚拟机环境搭建教程,触觉智能Purple Pi OH主板

本文适用于Ubuntu虚拟机环境搭建教程学习&#xff0c;设备为触觉智能开发的瑞芯微RK3566开发板&#xff0c;型号Purple Pi OH。是华为Laval官方社区主荐的一款鸿蒙开发主板。支持Openharmony、安卓Android、Linux的Debian、Ubuntu系统。 该主板主要针对学生党&#xff0c;极客&…