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

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

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

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

相关文章

一篇了解电阻的使用

目录 一、电阻理论基础 1.电阻的定义 2.欧姆定律 3.电阻决定式 4.电阻的串并联​编辑 5.电阻的功率 6.温度对电阻的影响 二、电阻的选型 1.安装方式 2.电阻值 (1)电阻值的标称 (2)电阻值的确定 (3&#x…

图片上的物品怎么抠出来?这三种方法教你快速消除

怎么把图片上的物品抠出来?这是一个在设计、摄影和后期制作中经常遇到的问题。在很多设计项目中,我们可能需要从一张图片中扣出某个物品,以便在其他背景中使用,或者将其与其他图像组合在一起。今天,我们就来分享三种常…

力扣刷题记录--463. 岛屿的周长

题目链接&#xff1a;463. 岛屿的周长 - 力扣&#xff08;LeetCode&#xff09; 题目描述 我的代码实现 class Solution {public int islandPerimeter(int[][] grid) { int result0; int rowgrid.length; int colgrid[0].length; for(int i0;i<row;i){for(int j0;j<col…

FPGA时序约束与分析--数据到达路径和数据需求路径

文章目录 前言一、定义二、时序模型三、公式推导前言 时序约束的定义–设计者根据实际的系统功能,通过时序约束的方式提出时序要求; FPGA 编译工具根据设计者的时序要求,进行布局布线;编译完成后, FPGA 编译工具还需要针对布局布线的结果,套用特定的时序模型( FPGA 器件…

Git 初试 安装

Git初识 遇到问题&#xff1a; 在生活和学习中&#xff0c;我们会遇到这样的问题&#xff0c;比如上交论文的时候&#xff0c;老师让你改了一遍又一遍&#xff0c;结果改到最后一版的时候&#xff0c;说你这个还不如你第一版的或者前几版的&#xff0c;老师又说&#xff0c;把…

美女街拍3000张高清图

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

揭秘App访问量背后的秘密:数据统计与分析

在移动互联网时代&#xff0c;App已成为人们日常生活的重要组成部分。对于App运营者来说&#xff0c;了解用户的访问量、行为习惯等数据至关重要。本文将深入探讨如何精准统计App访问量&#xff0c;为运营者提供有价值的数据支持。 一、App访问量统计的重要性 访问量是衡量A…

jmeter 二次开发详解

背景&#xff1a; JMeter 是一个功能强大的性能测试工具&#xff0c;但它可能无法满足特定项目或组织的特定需求。通过进行二次开发&#xff0c;可以定制 JMeter&#xff0c;使其适应具体项目的需求。例如&#xff0c;可能需要添加自定义的 测试元件、报告生成器或结果分析器…

Springboot+vue的船舶监造系统(有报告)。Javaee项目,springboot vue前后端分离项目。

演示视频&#xff1a; Springbootvue的船舶监造系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot vue前后端分离项目。 项目介绍&#xff1a; 本文设计了一个基于Springbootvue的船舶监造系统&#xff0c;采用M&#xff08;model&#xff09;V&#xff…

温湿度传感器SHT21

SHT21是一款基于IIC的温湿度传感器&#xff0c;它的引脚及定义如下&#xff1a; 标准的IIC器件&#xff0c;没有其他多余的引脚&#xff0c;应用框图如下&#xff1a; 温度的测量范围是-40到125℃&#xff0c;湿度测量范围0-100%RH&#xff0c;具体参数及采样精度见下图&#x…

鸿蒙ArkTs开发问题总结

版本问题 现阶段鸿蒙ArkTs开发主要分为两个版本 HarmonyOS3.x.x(API9)及HarmonyOS4.x.x(API10) 一下简称为 API9,API10 官方现在所有案例均以 HarmonyOS4.x.x(API10) 为基础请注意选择分支 API9&HarmonyOS3.x.x 鸿蒙开发编译器默认下载的为public版本SDK不是全量SDK需要…

【Linux】输入系统应用

# 前置知识 (1)输入子系统分为三层&#xff0c;分别是事件处理层、核心层、设备驱动层&#xff1b; (2)鼠标移动、键盘按键按下等输入事件都需要通过设备驱动层→核心层→事件处理层→用户空间&#xff0c;层层上报&#xff0c;直到应用程序; 事件处理层 (1)事情处理层主要是负…

Windows10蓝牙开关按钮不见了问题??

Windows10蓝牙开关按钮不见了问题&#xff1f;&#xff1f;此类问题一般是系统更新不及时的bug&#xff0c;遗漏掉了蓝牙相关驱动插件 试过很多方法&#xff0c;直接下载一个驱动人生即可&#xff0c;主要通过官网下载 下载这个就行 打开软件自动扫描就可以了 最后查看结果

Linkedln领英账号限制问题|通过代理IP安全使用Linkedln

LinkedIn是跨境外贸必备的拓客工具&#xff0c;世界各地的许多专业人士都使用领英来作为发布和共享内容的主要工具&#xff0c;这使得它成为跨境出海必备的渠道工具。 但是不少做外贸的朋友都知道&#xff0c;领英账号很容易遭遇限制封禁&#xff0c;但如果善用工具&#xff0…

深度相机xyz点云文件三维坐标和jpg图像文件二维坐标的相互变换函数

深度相机同时拍摄xyz点云文件和jpg图像文件。xyz文件里面包含三维坐标[x,y,z]和jpg图像文件包含二维坐标[x&#xff0c;y],但是不能直接进行变换&#xff0c;需要一定的步骤来推演。 下面函数是通过box二维框[xmin, ymin, xmax, ymax, _, _ ]去截取xyz文件中对应box里面的点云…

2023人机交互期末复习

考试题型及分值分布 1、选择题&#xff08;10题、20分&#xff09; 2、填空题&#xff08;10题、20分&#xff09; 3、判断题&#xff08;可选、5题、10分&#xff09; 4、解答题&#xff08;5~6题、30分&#xff09; 5、分析计算题&#xff08;1~2题、20分&#xff09; 注意&…

埃隆・马斯克46页文件起诉OpenAI违反成立初衷:一场涉及通用人工智能未来的法律纠纷

近日&#xff0c;科技界的重量级人物埃隆・马斯克对十年前他参与创立的生成式人工智能公司OpenAI提起诉讼&#xff0c;引发了广泛关注。马斯克指控OpenAI违反了他们之间的合同&#xff0c;并提出了一系列引人注目的言论&#xff0c;包括指责OpenAI将GPT-4称为通用人工智能&…

C# Onnx segment-anything 分割万物 一键抠图

目录 介绍 效果 模型信息 sam_vit_b_decoder.onnx sam_vit_b_encoder.onnx 项目 代码 下载 C# Onnx segment-anything 分割万物 一键抠图 介绍 github地址&#xff1a;https://github.com/facebookresearch/segment-anything The repository provides code for runn…

光伏储能MPPT控制系统如何进行浪涌静电保护?

MPPT&#xff08;Maximum Power Point Tracking&#xff09;是太阳能电池板光伏发电系统中重要的一种控制技术。MPPT控制器能够实时侦测太阳能板的发电电压&#xff0c;并追踪最高电压电流值&#xff08;VI&#xff09;&#xff0c;使系统以最大功率输出对蓄电池充电&#xff0…

libswift_Concurrency.dylib (which was built for iOS 13.0)

app启动时崩溃&#xff1a;libswift_Concurrency.dylib (which was built for iOS 13.0) ios真机系统版本过低
最新文章