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

数学建模【多元线性回归模型】

一、多元线性回归模型简介

回归分析是数据分析中最基础也是最重要的分析工具,绝大多数的数据分析问题,都可以使用回归的思想来解决。回归分析的任务就是,通过研究自变量X和因变量Y的相关关系,尝试去解释Y的形成机制,进而达到通过X去预测Y的目的。

常见的回归分析有五类:线性回归、0-1回归、定序回归、计数回归和生存回归,其划分的依据是因变量Y的类型。本篇主要讲解多元线性回归以及lasso回归。

回归分析的目的

  • 识别重要变量
  • 判断相关性的方向
  • 要估计权重(回归系数)

回归分析分类

类型模型Y的特点例子
线性回归OLS、GLS(最小二乘)连续数值型变量GDP、产量、收入
0-1回归logistic回归二值变量(0-1)是否违约、是否得病
定序回归probit定序回归定序变量等级评定(优良差)
计数回归泊松回归(泊松分布)计数变量每分钟车流量
生存回归Cox等比例风险回归生存变量(截断数据)企业、产品的寿命

二、适用赛题

解释类问题

  • 问一个因变量y由多个自变量x决定,探究这多个x和y的关系
  • 解释哪个x和y关系更紧密

预测类问题

  • 由于回归模型会得到一个拟合曲线,进而可以由这个曲线去预测一些值
  • 不过注意,当要用拟合曲线预测的时候,拟合优度一定要大

三、模型流程

四、流程分析

注:回归模型其中涉及到矩阵论、概率论与数理统计的知识,本篇不展开证明和讲解。且推荐使用Stata软件来进行多元线性回归分析。

1.处理变量

我们得到了一组数据,要对数据进行分类

横截面数据

  • 在某一时点收集的不同对象的数据
  • 例如:我们自己发放问卷得到的数据,全国各省份2018年GDP的数据,大一新生今年体测的得到的数据

时间序列数据

  • 对同一对象在不同时间连续观察所取得的数据
  • 例如:从出生到现在,你的体重的数据(每年生日称一次),中国历年来GDP的数据,在某地方每隔一小时测得的温度数据

面板数据

  • 横截面数据与时间序列数据综合起来的一种数据资源
  • 例如:2008-2018年,我国各省份GDP的数据
数据类型常见建模方法
横截面数据多元线性回归
时间序列数据移动平均、指数平滑、ARIMA、GARCH、VAR、 协积
面板数据固定效应和随机效应、静态面板和动态面板

现在给出多元线性回归方程

无内生性(no endogeneity)要求所有解释变量均与扰动项不相关,这个假定通常太强,因为解释变量一般很多(比如,5-15个解释变量),且需要保证它们全部外生。是否可能弱化此条件?答案是肯定的,如果你的解释变量可以区分为核心解释变量与控制变量两类。

  • 核心解释变量:我们最感兴趣的变量,因此我们特别希望得到对其系数的一致估计(当样本容量无限增大时,收敛于待估计参数的真值)
  • 控制变量:我们可能对于这些变量本身并无太大兴趣,而之所以把它们也放入回归方程,主要是为了“控制住”那些对被解释变量有影响的遗漏因素
  • 在实际应用中,我们只要保证核心解释变量与μ不相关即可

如果自变量中有定性变量,例如性别、地域等,在回归中要怎么处理呢?例如:我们要研究性别对于工资的影响(性别歧视)。这时候可以用到虚拟变量

Female就是一个虚拟变量。

为了避免完全多重共线性的影响,引入虚拟变量的个数一般是分类数减1。例如男女是两类,就引入了一个Female;如果是区别全国34个省的人,就可以设置33个虚拟变量。

2.初次回归

利用Stata得到初次回归的结果后,需要检验结果的可靠性,如果可靠就可以解释系数完成工作如果不可靠,还需要调整方法继续回归。

问题出在扰动项

横截面数据容易出现异方差的问题;时间序列数据容易出现自相关的问题。

①异方差
如果扰动项存在异方差
  • OLS估计出来的回归系数是无偏、一致的
  • 假设检验无法使用(构造的统计量失效了)
  • OLS估计量不再是最优线性无偏估计量(BLUE)
如何检验是否存在异方差

BP检验

原假设:扰动项不存在异方差。P值小于0.05,说明在95%的置信水平下拒绝原假设,即我们认为扰动项存在异方差。

怀特检验

原假设:扰动项不存在异方差。P值小于0.05,说明在95%的置信水平下拒绝原假设,即我们认为扰动项存在异方差。

②多重共线性

自相关的问题就是多重共线性的问题

如何检验是否存在多重共线性

3.处理问题
①如何解决异方差
  • 使用OLS + 稳健的标准误。如果发现存在异方差,一种处理方法是,仍然进行OLS回归,但使用稳健标准误。这是最简单,也是目前通用的方法。只要样本容量较大,即使在异方差的情况下,若使用稳健标准误,则所有参数估计、假设检验均可照常进行。换言之,只要使用了稳健标准误,就可以与异方差“和平共处”了
  • 广义最小二乘估计法GLS。原理:方差较大的数据包含的信息较少,我们可以给予信息量大的数据(即方差较小的数据更大的权重)缺点:我们不知道扰动项真实的协方差矩阵,因此我们只能用样本数据来估计,这样得到的结果不稳健,存在偶然性
  • Stock and Watson (2011)推荐,在大多数情况下应该使用“OLS +稳健标准误”
②如何处理多重共线性
  • 如果不关心具体的回归系数,而只关心整个方程预测被解释变量的能力,则通常可以不必理会多重共线性(假设你的整个方程是显著的)。这是因为,多重共线性的主要后果是使得对单个变量的贡献估计不准,但所有变量的整体效应仍可以较准确地估计
  • 如果关心具体的回归系数,但多重共线性并不影响所关心变量的显著性,那么也可以不必理会。即使在有方差膨胀的情况下,这些系数依然显著;如果没有多重共线性,则只会更加显著
  • 如果多重共线性影响到所关心变量的显著性,则需要增大样本容量,剔除导致严重共线性的变量(不要轻易删除哦,因为可能会有内生性的影响),或对模型设定进行修改
③逐步回归分析

没有太好的方法处理多重共线性问题,可以调整回归的方式

向前逐步回归(Forward selection)

  • 将自变量逐个引入模型,每引入一个自变量后都要进行检验,显著时才加入回归模型
  • 缺点:随着以后其他自变量的引入,原来显著的自变量也可能又变为不显著了,但是,并没有将其及时从回归方程中剔除掉

向后逐步回归(Backward elimination)

  • 与向前逐步回归相反,先将所有变量均放入模型,之后尝试将其中一个自变量从模型中剔除,看整个模型解释因变量的变异是否有显著变化,之后将最没有解释力的那个自变量剔除。此过程不断迭代,直到没有自变量符合剔除的条件
  • 缺点:一开始把全部变量都引入回归方程,这样计算量比较大。若对一些不重要的变量,一开始就不引入,这样就可以减少一些计算。当然这个缺点随着现在计算机的能力的提升,已经变得不算问题了

注意事项

  • 向前逐步回归和向后逐步回归的结果可能不同
  • 不要轻易使用逐步回归分析,因为剔除了自变量后很有可能会产生新的问题,例如内生性问题(后面会介绍lasso回归)
  • 有没有更加优秀的筛选方法?有的,那就是每种情况都尝试一次,最终一共有2的k次方 - 1种可能。如果自变量很多,那么计算相当费时
4.解释系数

这里也可以看到,引入了新的自变量价格后,对回归系数的影响非常大。这就是遗漏变量导致的内生性的造成的。

伍德里奇的《计量经济学导论,现代观点》里,第六章176 -177页有详细的论述。取对数意味着原被解释变量对解释变量的弹性,即百分比的变化而不是数值的变化。目前,对于什么时候取对数还没有固定的规则,但是有一些经验法则

  • 与市场价值相关的,例如,价格、销售额、工资等都可以取对数
  • 以年度量的变量,如受教育年限、工作经历等通常不取对数
  • 比例变量,如失业率、参与率等,两者均可
  • 变量取值必须是非负数,如果包含0,则可以对y取对数ln(1+y)

取对数的好处

  • 减弱数据的异方差性
  • 如果变量本身不符合正态分布,取了对数后可能渐近服从正态分布
  • 模型形式的需要,让模型具有经济学意义

下面有四类模型回归系数的解释

  • 一元线性回归:y = a + bx + μ,x每增加1个单位,y平均变化b个单位
  • 双对数模型: lny = a + blnx + μ,x每增加1%,y平均变化b%
  • 半对数模型: y = a + blnx + μ,x每增加1%,y平均变化b/100个单位
  • 半对数模型: lny = a + bx + μ,x每增加1个单位,y平均变化(100b)%
5.再次回归

在前面已经介绍了如何解决存在异方差的情况。但是对于多重共线性并未有一个较好的解决方法,解决方法中的增大样本量显然不太现实,找点数据已经不容易了,还要增大样本量。所以在不用后面的方法的情况下,一般都是将导致严重共线性的变量删除。下面我们介绍lasso回归。

和lasso回归一起出来的,还有岭回归。事实上,回归中关于自变量的选择大有门道, 变量过多时可能会导致多重共线性问题造成回归系数的不显著,甚至造成OLS估计的失效。本篇介绍到的岭回归和lasso回归在OLS回归模型的损失函数上加上了不同的惩罚项,该惩罚项由回归系数的函数构成。一方面,加入的惩罚项能够识别出模型中不重要的变量,对模型起到简化作用,可以看作逐步回归法的升级版;另一方面,加入的惩罚项能够让模型变得可估计,即使之前的数据不满足列满秩。

和前面一样,还是推荐使用Stata软件分析。但大多数博客或讲义上都是使用Python来做岭回归和lasso回归的,因此有Python机器学习基础的同学可以自己查阅相关的调用代码。

另外,Stata中对于岭回归的估计有点bug,因此推荐用lasso回归。

那么,什么时候用lasso回归呢?

我们首先使用最一般的OLS对数据进行回归,然后计算方差膨胀因子VIF,如果VIF > 10则说明存在多重共线性的问题,此时我们需要对变量进行筛选。

在前面我们提到可以使用逐步回归法来筛选自变量,让回归中仅留下显著的自变量来抵消多重共线性的影响,知道lasso回归后,我们完全可以把lasso回归视为逐步回归法的进阶版,我们可以使用lasso回归来帮我们筛选出不重要的变量,步骤如下

  1. 判断自变量的量纲是否一样,如果不一样则首先进行标准化的预处理;
  2. 对变量使用lasso回归,记录下lasso回归结果表中回归系数不为0的变量,这些变量就是最终我们要留下来的重要变量,其余未出现在表中的变量可视为引起多重共线性的不重要变量

在得到了重要变量后,我们实际上就完成了变量筛选,此时我们只将这些重要变量视为自变量,然后进行回归,并分析回归结果即可。(注意:此时的变量可以是标准化前的,也可以是标准化后的,因为lasso只起到变量筛选的目的)

五、补充

1.拟合优度较低怎么办
  • 回归分为解释型回归和预测型回归。预测型回归一般才会更看重R²。解释型回归更多的关注模型整体显著性以及自变量的统计显著性和经济意义显著性即可
  • 可以对模型进行调整,例如对数据取对数或者平方后再进行回归
  • 数据中可能有存在异常值或者数据的分布极度不均匀
2.标准化回归系数

为了更为精准的研究影响评价量的重要因素(去除量纲的影响),我们可考虑使用标准化回归系数。

对数据进行标准化,就是将原始数据减去它的均数后,再除以该变量的标准差,计算得到新的变量值,新变量构成的回归方程称为标准化回归方程,回归后相应可得到标准化回归系数。

标准化系数的绝对值越大,说明对因变量的影响就越大(只关注显著的回归系数哦)。

3.对于线性的理解

线性假定并不要求初始模型都呈上述的严格线性关系,自变量与因变量可通过变量替换而转化成线性模型。比如下面的都是线性模型

相关文章:

数学建模【多元线性回归模型】

一、多元线性回归模型简介 回归分析是数据分析中最基础也是最重要的分析工具,绝大多数的数据分析问题,都可以使用回归的思想来解决。回归分析的任务就是,通过研究自变量X和因变量Y的相关关系,尝试去解释Y的形成机制,进…...

【 10X summary report】怎么看?详细解读笔记

报告内容 在开始正式的分析之前,需要查看在对齐和计数过程中生成的任何总结统计信息。下图是由Cell Ranger工具创建的10X总结报告,在从10X scRNA-seq实验生成计数矩阵时会生成。 The left half of the report describes sequencing and mapping statist…...

K8S—Pod控制器

目录 1.什么是POD控制器 2.POD控制器有几种类型 3.POD与控制器之间的关系 4.示例 4.1 Deployment 4.2 SatefulSet ①为什么要有headless? ②为什么要有volumeClainTemplate? ③服务发现:就是应用服务之间相互定位的过程。 ④K8S里服…...

LabVIEW石油钻机提升系统数字孪生技术

LabVIEW石油钻机提升系统数字孪生技术 随着数字化、信息化、智能化的发展,石油钻采过程中的石油钻机数字化技术提升成为了提高钻井效率、降低生产成本的重要途径。基于中石油云平台提供的数据,采用数字孪生技术,对石油钻机提升系统进行数字化…...

C#双向链表实现:在当前节点后插入新数据的方法Insert()

目录 1.定义一个泛型节点类并自动属性 2.定义链表类&#xff0c;并实现Append、Print、MoveFirst、 Insert 3.Main方法 1.定义一个泛型节点类并自动属性 /// <summary> /// 定义泛型节点类 /// </summary> /// <typeparam name"T">泛型运算符&…...

10-Java装饰器模式 ( Decorator Pattern )

Java装饰器模式 摘要实现范例 装饰器模式&#xff08;Decorator Pattern&#xff09;允许向一个现有的对象添加新的功能&#xff0c;同时又不改变其结构 装饰器模式创建了一个装饰类&#xff0c;用来包装原有的类&#xff0c;并在保持类方法签名完整性的前提下&#xff0c;提供…...

Vue.js 实用技巧:深入理解 Vue.set 方法

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…...

单词规律00

题目链接 单词规律 题目描述 注意点 pattern只包含小写英文字母s只包含小写英文字母和 ’ ’s不包含任何前导或尾随对空格s中每个单词都被 单个空格 分隔 解答思路 本题与上一次同构字符串类似&#xff0c;思路可以参照同构字符串 代码 class Solution {public boolean …...

vue3 vite项目一运行就401(Unauthorized)

问题&#xff1a;项目一执行&#xff1a; pnpm run dev, 启动就出错&#xff0c; Failed to load resource: the server responded with a status of 401 (Unauthorized) 分析&#xff1a; 项目之前是正常运行的&#xff0c;没有问题&#xff0c;回溯刚刚改动&#xff0c;还原…...

LeetCode102.二叉树的层序遍历

题目 给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 &#xff08;即逐层地&#xff0c;从左到右访问所有节点&#xff09;。 示例 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;[[3],[9,20],[15,7]]输入&#xff1a;root [1] 输出&am…...

Java底层自学大纲_JVM篇

JVM专题_自学大纲所属类别学习主题建议课时&#xff08;h&#xff09; A 深入理解Java虚拟机001 JVM类加载器设计原理2.5 A 深入理解Java虚拟机002 基于SPI破解双亲委派机制2.5 A 深入理解Java虚拟机003 JVM内部结构分析2.5 A 深入理解Java虚拟机004 字符串常量池原理2.5 …...

数据可视化?这些平台能处

图表在各行各业都起到举重若轻的作用&#xff0c;无论是项目汇报、业绩分析&#xff0c;亦或是数据挖掘、统计分析&#xff0c;良好的可视化可以为我们的阐述起到画龙点睛的效果。在一篇文章中&#xff0c;如果只有密密麻麻的文字堆积&#xff0c;无论是谁恐怕都无法长期保持注…...

[ai笔记14] 周鸿祎的ai公开课笔记1

欢迎来到文思源想的ai空间&#xff0c;这是技术老兵重学ai以及成长思考的第14篇分享&#xff01; 本周二月的最后一周&#xff0c;并不是闲下来了&#xff0c;反而是开始进行一些更多的深入实践&#xff0c;关于gpt的主体架构、关于prompt&#xff0c;同时也看了不少书和直播&…...

在Linux系统中创建新用户并登录

1 创建新用户&#xff08;使用 useradd 或 adduser 命令&#xff09; 使用 useradd 命令&#xff08;不带交互式选项&#xff09;创建新用户&#xff0c;同时默认会在 /home 目录下创建同名目录作为家目录&#xff1a; sudo useradd -m 新用户名在执行上述命令后&#xff0c;…...

Vue.js+SpringBoot开发高校实验室管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容2.1 实验室类型模块2.2 实验室模块2.3 实验管理模块2.4 实验设备模块2.5 实验订单模块 三、系统设计3.1 用例设计3.2 数据库设计 四、系统展示五、样例代码5.1 查询实验室设备5.2 实验放号5.3 实验预定 六、免责说明 一、摘…...

文献阅读笔记《Spatial-temporal Forecasting for Regions without Observations》13页

目录 目录 目录 发行刊物 ABSTRACT 1 INTRODUCTION 2 RELATED WORK&#xff08;相关工作 2.1 Spatial-temporal Forecasting&#xff08;时空预测 2.2 Spatial-temporal Forecasting withIncomplete Data&#xff08;不完全数据的时空预测 2.3 Graph Contrastive Learn…...

如何学习openfoam

学习OpenFOAM的详细步骤、流程、学习网站、练习案例以及B站学习资源推荐如下&#xff1a; 一、详细步骤和流程 安装OpenFOAM&#xff1a;首先&#xff0c;你需要在你的计算机上安装OpenFOAM。你可以从OpenFOAM的官方网站下载适合你的操作系统的安装包&#xff0c;然后按照官方提…...

vue前端密码加密,springboot后端密码解密

1.模块安装 1 npm install crypto-js 2.src–>util–>secret.js 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 import CryptoJS from crypto-js // 默认的 KEY …...

selenuim【1】$x(‘xpath’)、WebDriverWait()、try/assert

文章目录 1、执行driver webdriver.Chrome()后很久才打开浏览器2、浏览器多元素定位 $x(‘xpath语法’)3、打开浏览器driver.get("网址")执行了很久才开始定位元素&#xff1a;等待&#xff08;1&#xff09;driver.set_page_load_timeout(t)&#xff08;2&#xff…...

机器学习模型总结

多元线性回归&#xff08;linear regression&#xff09; 自变量&#xff1a;连续型数据&#xff0c;因变量&#xff1a;连续型数据 选自&#xff1a;周志华老师《机器学习》P53-55 思想&#xff1a;残差平方和达到最小时的关系式子即为所求&#xff0c;残差平方和&#xff1a…...

挑战杯推荐项目

“人工智能”创意赛 - 智能艺术创作助手&#xff1a;借助大模型技术&#xff0c;开发能根据用户输入的主题、风格等要求&#xff0c;生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用&#xff0c;帮助艺术家和创意爱好者激发创意、提高创作效率。 ​ - 个性化梦境…...

在rocky linux 9.5上在线安装 docker

前面是指南&#xff0c;后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...

什么是EULA和DPA

文章目录 EULA&#xff08;End User License Agreement&#xff09;DPA&#xff08;Data Protection Agreement&#xff09;一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA&#xff08;End User License Agreement&#xff09; 定义&#xff1a; EULA即…...

android13 app的触摸问题定位分析流程

一、知识点 一般来说,触摸问题都是app层面出问题,我们可以在ViewRootImpl.java添加log的方式定位;如果是touchableRegion的计算问题,就会相对比较麻烦了,需要通过adb shell dumpsys input > input.log指令,且通过打印堆栈的方式,逐步定位问题,并找到修改方案。 问题…...

PostgreSQL——环境搭建

一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在&#xff0…...

WEB3全栈开发——面试专业技能点P7前端与链上集成

一、Next.js技术栈 ✅ 概念介绍 Next.js 是一个基于 React 的 服务端渲染&#xff08;SSR&#xff09;与静态网站生成&#xff08;SSG&#xff09; 框架&#xff0c;由 Vercel 开发。它简化了构建生产级 React 应用的过程&#xff0c;并内置了很多特性&#xff1a; ✅ 文件系…...

rm视觉学习1-自瞄部分

首先先感谢中南大学的开源&#xff0c;提供了很全面的思路&#xff0c;减少了很多基础性的开发研究 我看的阅读的是中南大学FYT战队开源视觉代码 链接&#xff1a;https://github.com/CSU-FYT-Vision/FYT2024_vision.git 1.框架&#xff1a; 代码框架结构&#xff1a;readme有…...

写一个shell脚本,把局域网内,把能ping通的IP和不能ping通的IP分类,并保存到两个文本文件里

写一个shell脚本&#xff0c;把局域网内&#xff0c;把能ping通的IP和不能ping通的IP分类&#xff0c;并保存到两个文本文件里 脚本1 #!/bin/bash #定义变量 ip10.1.1 #循环去ping主机的IP for ((i1;i<10;i)) doping -c1 $ip.$i &>/dev/null[ $? -eq 0 ] &&am…...

CTF show 数学不及格

拿到题目先查一下壳&#xff0c;看一下信息 发现是一个ELF文件&#xff0c;64位的 ​ 用IDA Pro 64 打开这个文件 ​ 然后点击F5进行伪代码转换 可以看到有五个if判断&#xff0c;第一个argc ! 5这个判断并没有起太大作用&#xff0c;主要是下面四个if判断 ​ 根据题目…...

【PX4飞控】mavros gps相关话题分析,经纬度海拔获取方法,卫星数锁定状态获取方法

使用 ROS1-Noetic 和 mavros v1.20.1&#xff0c; 携带经纬度海拔的话题主要有三个&#xff1a; /mavros/global_position/raw/fix/mavros/gpsstatus/gps1/raw/mavros/global_position/global 查看 mavros 源码&#xff0c;来分析他们的发布过程。发现前两个话题都对应了同一…...