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

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

回归分析是数据分析中最基础也是最重要的分析工具,绝大多数的数据分析问题,都可以使用回归的思想来解决。回归分析的任务就是,通过研究自变量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.对于线性的理解

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

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Boost搜索引擎项目】Day1 项目介绍+去标签和数据清洗框架搭建

🌈欢迎来到C项目专栏 🙋🏾‍♀️作者介绍:前PLA队员 目前是一名普通本科大三的软件工程专业学生 🌏IP坐标:湖北武汉 🍉 目前技术栈:C/C、Linux系统编程、计算机网络、数据结构、Mysq…

毕业论文页眉页脚的设置

目录 一、理解:分页符和分节符的区别 二、页眉设置具体步骤 三、页脚设置具体步骤 一、理解:分页符和分节符的区别 分页符是重新一页开始而已,和页码无关! 分节符是从这里开始,是新的小节,页码和页眉都…

前后端依赖下载上传

在某些情况下,可能需要在没有互联网连接的环境中进行构建或部署。通过提前下载所有依赖,你可以将它们保存在本地,然后在没有网络连接时使用,提高构建或部署的效率。 前端下载依赖 脚本getTzgUrl.js const { readFileSync, writ…

【前端寻宝之路】总结学习使用CSS的引入方式

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法|MySQL| ​💫个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-BNJBIEvpN0GHNeJ1 {font-family:"trebuchet ms",verdana,arial,sans-serif;f…

死记硬背spring bean 的生命周期

1.bean的生命周期 我们平常经常使用类似于new Object()的方式去创建对象,在这个对象没有任何引用的时候,会被gc给回收掉。而对于spring而言,它本身存在一个Ioc容器,就是用来管理对象的,而对象的生命周期也完全由这个容…

上帝视角看GPU(5):图形流水线里的不可编程单元

【GPU】图形流水线基础【GPU】逻辑上的模块划分【GPU】部署到硬件【GPU】完整的软件栈 前几期我们过了一遍GPU的软硬栈。这次我们将深入GPU图形流水线的一些细节,看看那些不可编程的模块是怎么工作的。 对于GPU的图形流水线来说,最核心最重要的一个组件就…

leetcode第 387 场周赛总结

很久没打周赛了,这周开始恢复 这次周赛,题目比较简单,第三道题有点浪费了时间,思路是对的,但是被我把问题复杂化了。 给你一个下标从 1 开始、包含 不同 整数的数组 nums ,数组长度为 n 。 你需要通过 n 次…

【QT 5 +Linux下软件qt软件打包+qt生成软件创建可以安装压缩包+学习他人文章+第三篇:学习打包】

【QT 5 Linux下软件qt软件打包qt生成软件创建可以安装压缩包学习他人文章第三篇:学习打包】 1、前言2、实验环境3、自我学习总结-本篇总结(1)了解安装包的目录结构(2)了解要编写文件与编写脚本1. control文件2. postin…

美女街拍3000张高清图

美女街拍3000张高清图,需要的可以直接下载 2.资源下载 ​途径一:点击以下链接直接下载 美女街拍3000张高清图 途径二:直接长按住以下图片识别进去下载即可

北京大学发布,将试错引入大模型代理学习!

引言:探索语言智能的新边界 在人工智能的发展历程中,语言智能始终是一个核心的研究领域。随着大语言模型(LLM)的兴起,我们对语言智能的理解和应用已经迈入了一个新的阶段。这些模型不仅能够理解和生成自然语言&#x…

UCSF DOCK 分子对接详细案例(01)- rigid, fixed anchor, flexible dock

欢迎浏览我的CSND博客! Blockbuater_drug …点击进入 文章目录 前言一、操作环境二、研究背景三、受体-配体结构文件准备3.1准备文件夹DOCK_workdir, 下载晶体结构3.1.1 来自湿实验的受体配体共晶结构:3.1.2 来自深度学习和语言模型推理预测的蛋白结构&a…

了解游戏中的数据同步

目录 数据同步 通过比较来看状态同步和帧同步 状态同步 帧同步 帧同步实现需要的条件 两者相比较 数据同步 在联机游戏中,我的操作和数据要同步给同一局游戏中其他所有玩家,其他玩家的操作和数据也会同步给我。这叫做数据同步,目前数据…

幻兽帕鲁(1.5.0)可视化管理工具(0.5.7 docker版)安装教程

文章目录 局域网帕鲁服务器部署教程帕鲁服务可视化工具安装配置服务器地址(可跳过)使用工具管理面板 1.5.0服务端RCON错误1.5.0服务端无法启动RCON端口 解决方法第一步:PalWorldSettings.ini配置第二步:修改PalServer.sh配置 局域…

Unity(第二十一部)动画的基础了解(感觉不了解其实也行)

1、动画组件老的是Animations 动画视频Play Automatically 是否自动播放Animate Physics 驱动方式,勾选后是物理驱动Culling Type 剔除方式 默认总是动画化就会一直执行下去,第二个是基于渲染播放(离开镜头后不执行), …

数仓模型设计方法论

在当今大数据时代,数据已经成为企业最重要的资产之一。而数据仓库作为企业数据管理和分析的核心基础设施,其设计方法论对于企业的数据治理和决策分析至关重要。本文将探索数仓模型设计的方法论,帮助读者更好地理解和应用数仓模型设计。 一、…

day06_菜单管理(查询菜单,添加菜单,添加子菜单,修改菜单,删除菜单,角色分配菜单,查询菜单,保存菜单,动态菜单)

文章目录 1 菜单管理1.1 表结构介绍1.2 查询菜单1.2.1 需求说明1.2.2 页面制作1.2.3 后端接口SysMenuSysMenuControllerSysMenuServiceMenuHelperSysMenuMapperSysMenuMapper.xml 1.2.4 前端对接sysMenu.jssysMenu.vue 1.3 添加菜单1.3.1 需求说明1.3.3 页面制作1.3.3 后端接口…

AI新工具(20240228) EMO - 阿里巴巴的表情驱动的音频到视频转换框架;DepthFlow;Globe Explorer等

EMO - 阿里巴巴的表情驱动的音频到视频转换框架 EMO(Emote Portrait Alive)是一个先进的表情驱动的音频到视频转换框架,可以通过音频(比如说话或唱歌的声音)和一张单独的参考图片,生成带有丰富面部表情和头…

【前端面试题5】利用 border 属性画一个三角形

举例1:利用 border 属性画一个三角形(小技巧) 完整代码如下: div{width: 0;height: 0;border: 50px solid transparent;border-top-color: red;border-bottom: none; }步骤如下: (1)当我们设…

es集群的详细搭建过程

目录 一、VM配置二、集群搭建三、集群配置 一、VM配置 VM的安装 VMware Workstation 15 Pro的安装与破解 VM新建虚拟机 VM新建虚拟机 二、集群搭建 打开新建好的服务器,node1,使用xshell远程连接 下载es:https://www.elastic.co/cn/down…

java中的set

Set Set集合概述和特点 不可以存储重复元素 没有索引,不能使用普通for循环遍历 哈希值 哈希值简介 是JDK根据对象的地址或者字符串或者数字算出来的int类型的数值 如何获取哈希值 Object类中的public int hashCode():返回对象的哈希码值。 哈希值的特点 同一个…