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

news2024/11/17 1:56:19

        参加数学建模的小伙伴要注意了:多元线性回归几乎是所有分析方式里面最核心、最常用、最全面的模型,博主本科大致参加了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号开始,尽量近期把我力所能及的东西更新完,希望对各位有所帮助~ 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

用Python在PDF文档中创建动作

PDF格式因其跨平台兼容性和丰富的功能集而成为许多行业中的首选文件格式。其中,PDF中的动作(Action) 功能尤为突出,它允许开发者嵌入交互式元素,如链接、按钮或是更复杂的脚本,从而显著提升文档的互动性和功…

c++vscode多文件实现通讯录管理系统

cvscode多文件实现通讯录管理系统 作为c入门级别的实战项目,此通讯管理系统项目不仅仅是对c入门阶段学习成果的检验,也是对c基础知识的回顾,体会c在实战制作中的思路,是入门c单文件实现通讯录系统的改进 一、多文件通讯录管理系统简介 系统需…

JAVA—多线程

关于线程以及多线程的学习,包括创建和常用方法还有解决线程安全的措施,最后学习线程池和了解并发和并行,对于悲观锁和乐观锁的部分没有学习 目录 1.线程概述 2.多线程的创建 (1)继承Thread类 (2&#…

【GPT】基于GPT_API_free做一个自己的gpt

最终效果 项目背景 秉持能免费就绝不花钱的原则,基于github项目GPT_API_free获取的gpt apikey。下面是简单的代码 import json import os import requestsopenai_url os.getenv("openaiproxy") openai_apikey os.getenv("openaikey") # 初始…

[图解]SysML和EA建模住宅安全系统-活动作为块

1 00:00:00,210 --> 00:00:04,360 下一个步骤是识别潜在的失效 2 00:00:06,850 --> 00:00:11,150 这里它是用一个块定义图来表达的 3 00:00:12,150 --> 00:00:16,790 图17.21,失效模式识别和因果依赖 4 00:00:19,110 --> 00:00:22,400 但是这个块定义…

【AutoX.js】定时器 Timers

文章目录 原文:https://blog.c12th.cn/archives/36.html定时器 Timers笔记实例 最后 原文:https://blog.c12th.cn/archives/36.html 定时器 Timers 笔记 JavaScript Date 参考手册 时间戳 //当前时间戳 log(Math.round(new Date() / 1000));当前星期 …

C语言小tip之函数递归

hello,各位小伙伴们今天我们来学习一下函数递归。 什么是函数递归呢?简单来说就是函数自己来调用自己。函数递归的主要思想是把大事化小,递归包含两层方面:1、递推 2、回归 在使用函数递归的时候要注意包含两个限制条件&#…

SCI英文期刊发表流程

目录 一、撰写初稿二、预审三、英文查重四、Cover letter和Highlights五、英文语法待续 一、撰写初稿 英文好的话应该直接写英文,因为中英文的写法不一样。 而且在这一步把格式修改好,初稿的最终版 二、预审 可以让同学、老师帮看论文,或者…

[Algorithm][综合训练][字符编码][最少的完全平方数][游游的字母串]详细讲解

目录 1.字符编码1.题目链接2.算法原理详解 && 代码实现 2.最少的完全平方数1.题目链接2.算法原理详解 && 代码实现 3.游游的字母串1.题目链接2.算法思路详解 && 代码实现 1.字符编码 1.题目链接 字符编码 2.算法原理详解 && 代码实现 解法&…

Carla自动驾驶仿真十:Carlaviz三维可视化平台搭建

文章目录 前言一、环境准备1、docker安装2、websocket-client安装3、carlaviz代码下载 二、carlaviz使用1、打开carla客户端2、输入启动命令3、进入carlaviz4、修改manual_control.py脚本5、运行manual_control.py脚本6、运行carlaviz官方脚本(推荐) 前言…

数据库之心:MySQL 探索(一)mysql的安装和基本介绍

欢迎来到我们的MySQL博客!在这里,我们将深入探讨MySQL数据库系统的各个方面,包括基础知识、优化技巧、实践案例以及最新的行业趋势。 目录 前言 什么是数据库? 数据库产品 MySQL安装 解压 配置 添加环境变量 初始化MySQL …

计算机毕业设计PySpark+Scrapy高考推荐系统 高考志愿填报推荐系统 高考爬虫 协同过滤推荐算法 Vue.js Django Hadoop 大数据毕设

目  录 第1章 绪论 1.1 研究背景 1.2 国内外现状 1.2.1 国外研究现状 1.2.2 国内研究现状 1.3 主要研究内容 1.4 论文框架结构 第2章 相关开发技术与理论 2.1 前端技术 1.Vue框架技术 2.Element-Plus 2.2 后端技术 1&#xff0e…

linux下cpu多核运行程序以及运行时间统计

一、多核心运行程序 在linux下我们可以指定线程或者进程运行在指定的cpu核心上,操作方法如下: 1)运行进程指定cpu核心 taskset -c 2 ./app //-c指定运行的cpu核心号,从0计数,查看效果如下: 2&#xff09…

C++map容器中operator[ ]的实现原理

目录 一、operator[ ]函数介绍 二、insert函数介绍 三、operator[ ]函数实现原理 四、operator[ ]函数功能 一、operator[ ]函数介绍 mapped_type& operator[] (const key_type& k);在map容器中存储的是一个键值对value_type&#xff0c;其本质是pair<const key…

maya python调试(pycharm)

maya里面调试代码一直用的print。遇到复杂点的类就感觉有点束手束脚的&#xff0c;因此整理了一下maya调试的一些方法 1.万能的pdb调试 pdb 有2种用法 1.非侵入式方法 &#xff08;不用额外修改源代码&#xff0c;在命令行下直接运行就能调试&#xff09; 常规用法&#xf…

APP长文本内容编辑器功能实现方案

背景 CSDN APP 中原有编辑器页面为纯H5适配&#xff0c;整体用户交互体验差&#xff0c;如何优化APP端编辑器用户体验是我们团队需要思考的问题。下面我们以iOS为例展开讨论。 一、方案调研 我们分析了几款国内内容发布的APP&#xff0c;如知乎、今日头条、简书&#xff0c;…

有了它 一键掌握Vue新版本!

声明&#xff1a;此篇为 ai123.cn 原创文章&#xff0c;转载请标明出处链接&#xff1a;https://ai123.cn/#1 你是否也在为Vue生态中的快速更新而焦头烂额&#xff1f;ue 3.4版本发布&#xff0c;带来模板解析器重写和响应系统重构&#xff0c;提升了性能和开发体验。测试框架如…

《深入理解JAVA虚拟机(第2版)》- 第3章 - 学习笔记

第3章 垃圾收集器与内存分配策略 3.1 概述 垃圾收集器要完成三件事情&#xff1a; 什么样的内存需要回收什么时候回收如何回收 垃圾收集器主要关注的区域是&#xff1a;Java堆和方法区。因为程序计数器、虚拟机栈、本地方法栈是线程私有的&#xff0c;随着线程的结束所使用的…

2d椭圆拟合学习

算法来自论文《 Direct Least Square Fitting of Ellipses》 《NUMERICALLY STABLE DIRECT LEAST SQUARES FITTING OF ELLIPSES》 相关文章 论文阅读&#xff1a;直接拟合椭圆 Direct Least Square Fitting of Ellipseshttps://zhuanlan.zhihu.com/p/645391510Fitting Elli…

rsyslog交叉编译

文章目录 1、依赖库列表2、编译建议3、编译3.1、编译libestr3.2、编译libfastjson3.3、编译zlib3.4、编译libuuid3.5、编译libgpg-error3.6、编译libgcrypt3.7、编译openssl3.8、编译curl3.9、编译rsyslog该文档描述了如何交叉编译rsyslog到arm64嵌入式平台。 1、依赖库列表 li…