当前位置: 首页 > news >正文

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号开始,尽量近期把我力所能及的东西更新完,希望对各位有所帮助~ 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 高等代数精解【9】
  • flutter开发多端平台应用的探索 上(基本操作)
  • 监理工程师职业资格考试
  • 如何在Mac电脑上本地部署Stable Diffusion:详细教程(webUI)
  • 基于SVM的手势识别,SVM工具箱详解,SVM工具箱使用注意事项
  • nnunetv2(一)配置文件和nnUNetv2_convert_MSD_dataset命令
  • JZ62 孩子们的游戏(圆圈中最后剩下的数)
  • 【Hadoop|HDFS篇】HDFS概述
  • 微信小程序知识点(二)
  • Meaven的安装
  • [机器学习]线性回归算法
  • 面向切面:AOP
  • pyflink的窗口
  • MySQL系列—7.内存结构
  • ❤《实战纪录片 1 》原生开发小程序中遇到的问题和解决方案
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • flask接收请求并推入栈
  • input实现文字超出省略号功能
  • jdbc就是这么简单
  • Linux编程学习笔记 | Linux IO学习[1] - 文件IO
  • October CMS - 快速入门 9 Images And Galleries
  • Promise面试题,控制异步流程
  • python_bomb----数据类型总结
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • supervisor 永不挂掉的进程 安装以及使用
  • 闭包--闭包作用之保存(一)
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 分享一份非常强势的Android面试题
  • 普通函数和构造函数的区别
  • 前端攻城师
  • 十年未变!安全,谁之责?(下)
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • 7行Python代码的人脸识别
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • !!java web学习笔记(一到五)
  • #162 (Div. 2)
  • #考研#计算机文化知识1(局域网及网络互联)
  • #在 README.md 中生成项目目录结构
  • (PADS学习)第二章:原理图绘制 第一部分
  • (ros//EnvironmentVariables)ros环境变量
  • (二刷)代码随想录第15天|层序遍历 226.翻转二叉树 101.对称二叉树2
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (附源码)计算机毕业设计SSM疫情居家隔离服务系统
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (四) 虚拟摄像头vivi体验
  • (源码分析)springsecurity认证授权
  • (转)winform之ListView
  • **CI中自动类加载的用法总结
  • .net core使用RPC方式进行高效的HTTP服务访问
  • .NET Project Open Day(2011.11.13)
  • .NET 材料检测系统崩溃分析
  • .NET 使用配置文件
  • .net8.0与halcon编程环境构建
  • /proc/vmstat 详解
  • @DateTimeFormat 和 @JsonFormat 注解详解