【数学建模】-多元线性回归分析

article/2025/10/8 22:10:16

文章目录

    • 回归的思想
      • 回归分析:研究X和Y之间相关性的分析。
        • 相关性
        • 因变量Y
        • 自变量X
    • 回归分析的使命
    • 回归分析的分类
    • 数据的分类
    • 一元线性回归
      • 对于线性的理解
      • 回归系数的解释
      • 内生性的探究
      • 内生性的蒙特卡罗模拟
      • 核心解释变量和控制变量
      • 回归系数的解释
      • 什么时候取对数?
    • 四类模型回归系数的解释
    • 特殊的自变量:虚拟变量X
      • 多分类的虚拟变量设置
      • 含有交互项的自变量
    • 回归实例
      • 数据的描述性统计
        • 定量数据
        • 定性数据
      • Excel中数据透视表
      • 11个指标的总体情况介绍![在这里插入图片描述](https://img-blog.csdnimg.cn/48165298a3e044daaaf08c0d386ffa97.png)
      • Stata回归的语句
      • 拟合优度 R^2^较低怎么办
      • 标准化回归系数

学习来源:清风老师
回归分析的任务就是,通过研究 自变量X和因变量Y的相关关系,尝试去解释Y的形成机制,进而达到通过X去 预测Y的目的。
常见的回归分析有五类: 线性回归、0‐1回归、定序回归、计数回归和生存回归,其划分的依据是因变量Y的类型。

回归的思想

回归分析:研究X和Y之间相关性的分析。

相关性

相关性 ≠ 因果性

在绝大多数情况下,我们没有能力去探究严格的因果关系,所以只好退而求其次,改成通过回归分析,研究相关关系

因变量Y

  • 经济学家研究经济增长的决定因素,那么Y可以选取GDP增长率(连续数值型变量)。
  • P2P公司要研究借款人是否能按时还款,那么Y可以设计成一个二值变量,Y=0时代表可以还款,Y=1时代表不能还款(0‐1型变量)。
  • 消费者调查得到的数据(1表示非常不喜欢,2表示有点不喜欢,3表示一般般,4表示有点喜欢,5表示非常喜欢)(定序变量)。
  • 管理学中RFM模型:F代表一定时间内,客户到访的次数,次数其实就是一个非负的整数。(计数变量)
  • 研究产品寿命、企业寿命甚至是人的寿命(这种数据往往不能精确的观测,例如现在要研究吸烟对于寿命的影响,如果选取的样本中老王60岁,
    现在还活的非常好,我们不可能等到他去世了再做研究,那怎么办呢?直接记他的寿命为60+,那这种数据就是截断的数据)(生存变量)

自变量X

回归分析的任务就是,通过研究X和Y的相关关系,尝试去解释Y的形成机制,进而达到通过X去预测Y的目的。

回归分析的使命

使命1:回归分析要去识别并判断:哪些X变量是同Y真的相关,哪些不是。统计学中有一个非常重要的领域,叫做“变量选择”。(逐步回归法)
使命2:去除了那些同Y不相关的X变量,那么剩下的,就都是重要的、有用的X变量了。接下来回归分析要回答的问题是:这些有用的X变量同Y的相关关系是正的呢,还是负的?
使命3:在确定了重要的X变量的前提下,我们还想赋予不同X不同的权重,也就是不同的回归系数,进而我们可以知道不同变量之间的相对重要性。
第一、识别重要变量;
第二、判断相关性的方向;
第三、要估计权重(回归系数)。

回归分析的分类

在这里插入图片描述

数据的分类

横截面数据:在某一时点收集的不同对象的数据。
例如:
(1)我们自己发放问卷得到的数据
(2)全国各省份2018年GDP的数据
(3)大一新生今年体测的得到的数据
时间序列数据:对同一对象在不同时间连续观察所取得的数据
例如:
(1)从出生到现在,你的体重的数据(每年生日称一次)。
(2)中国历年来GDP的数据。
(3)在某地方每隔一小时测得的温度数据。
面板数据:横截面数据与时间序列数据综合起来的一种数据资源。
例如:
2008‐2018年,我国各省份GDP的数据。
在这里插入图片描述
数据的收集

一元线性回归

在这里插入图片描述

对于线性的理解

在这里插入图片描述

回归系数的解释

在这里插入图片描述

内生性的探究

在这里插入图片描述

包含了所有与y相关,但未添加到回归模型中的变量
如果这些变量和我们已经添加的自变量相关,则存在内生性

内生性的蒙特卡罗模拟

在这里插入图片描述

%% 蒙特卡洛模拟:内生性会造成回归系数的巨大误差
times = 300;  % 蒙特卡洛的次数
R = zeros(times,1);  % 用来储存扰动项u和x1的相关系数
K = zeros(times,1);  % 用来储存遗漏了x2之后,只用y对x1回归得到的回归系数
for i = 1: timesn = 30;  % 样本数据量为nx1 = -10+rand(n,1)*20;   % x1在-1010上均匀分布,大小为30*1u1 = normrnd(0,5,n,1) - rand(n,1);  % 随机生成一组随机数x2 = 0.3*x1 + u1;   % x2与x1的相关性不确定, 因为我们设定了x2要加上u1这个随机数% 这里的系数0.3我随便给的,没特殊的意义,你也可以改成其他的测试。u = normrnd(0,1,n,1);  % 扰动项u服从标准正态分布y = 0.5 + 2 * x1 + 5 * x2 + u ;  % 构造yk = (n*sum(x1.*y)-sum(x1)*sum(y))/(n*sum(x1.*x1)-sum(x1)*sum(x1)); % y = k*x1+b 回归估计出来的kK(i) = k;u = 5 * x2 + u;  % 因为我们回归中忽略了5*x2,所以扰动项要加上5*x2r = corrcoef(x1,u);  % 2*2的相关系数矩阵R(i) = r(2,1);
end
plot(R,K,'*')
xlabel("x_1和u'的相关系数")
ylabel("k的估计值")

在这里插入图片描述

核心解释变量和控制变量

无内生性(no endogeneity)要求所有解释变量均与扰动项不相关。
这个假定通常太强,因为解释变量一般很多(比如,5‐15个解释变量),且需要保证它们全部外生。
是否可能弱化此条件?答案是肯定的,如果你的解释变量可以区分为核心解释变量与控制变量两类。
核心解释变量:我们最感兴趣的变量,因此我们特别希望得到对其系数的
一致估计(当样本容量无限增大时,收敛于待估计参数的真值 )。
控制变量:我们可能对于这些变量本身并无太大兴趣;而之所以把它们也
放入回归方程,主要是为了 “控制住” 那些对被解释变量有影响的遗漏因素。
在实际应用中,我们只要保证核心解释变量与𝝁不相关即可。

回归系数的解释

在这里插入图片描述

什么时候取对数?

目前,对于什么时候取对数还没有固定的规则,但是有一些经验法则:
(1)与市场价值相关的,例如,价格、销售额、工资等都可以取对数;
(2)以年度量的变量,如受教育年限、工作经历等通常不取对数;
(3)比例变量,如失业率、参与率等,两者均可;
(4)变量取值必须是非负数,如果包含0,则可以对y取对数ln(1+y)
取对数的好处:(1)减弱数据的异方差性(2)如果变量本身不符合正态分布,取
了对数后可能渐近服从正态分布(3)模型形式的需要,让模型具有经济学意义。

四类模型回归系数的解释

在这里插入图片描述
在这里插入图片描述

特殊的自变量:虚拟变量X

在这里插入图片描述
在这里插入图片描述

多分类的虚拟变量设置

在这里插入图片描述

含有交互项的自变量

在这里插入图片描述

回归实例

现有某电商平台846条关于婴幼儿奶粉的销售信息,每条信息由11个指标组成。其中,评价量可以从一个侧面反映顾客对产品的关注度。
请对所给数据进行以下方面的分析,要求最终的分析将不仅仅有益于商家,更有益于宝妈们为宝贝选择适合自己的奶粉。

  1. 以评价量为因变量,分析其它变量和评价量之间的关系;
  2. 以评价量为因变量,研究影响评价量的重要因素。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

数据的描述性统计

定量数据

在这里插入图片描述

定性数据

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

// 按键盘上的PageUp可以使用上一次输入的代码(Matleb中是上箭头)
// 清除所有变量
clear
// 清屏 和 matlab的clc类似
cls 
// 导入数据(其实是我们直接在界面上粘贴过来的,我们用鼠标点界面导入更方便 本条请删除后再复制到论文中,如果评委老师看到了就知道这不是你写的了)
// import excel "C:\Users\hc_lzp\Desktop\数学建模视频录制\第7讲.多元回归分析\代码和例题数据\课堂中讲解的奶粉数据.xlsx", sheet("Sheet1") firstrow
import excel "课堂中讲解的奶粉数据.xlsx", sheet("Sheet1") firstrow
// 定量变量的描述性统计
summarize 团购价元 评价量 商品毛重kg
// 定性变量的频数分布,并得到相应字母开头的虚拟变量
tabulate 配方,gen(A)
tabulate 奶源产地 ,gen(B)
tabulate 国产或进口 ,gen(C)
tabulate 适用年龄岁 ,gen(D)
tabulate 包装单位 ,gen(E)
tabulate 分类 ,gen(F)
tabulate 段位 ,gen(G)
// 下面进行回归
regress 评价量 团购价元 商品毛重kg
// 下面的语句可帮助我们把回归结果保存在Word文档中
// 在使用之前需要运行下面这个代码来安装下这个功能包(运行一次之后就可以注释掉了)
// ssc install reg2docx, all replace
// 如果安装出现connection timed out的错误,可以尝试换成手机热点联网,如果手机热点也不能下载,就不用这个命令吧,可以自己做一个回归结果表,如果觉得麻烦就直接把回归结果截图。
est store m1
reg2docx m1 using m1.docx, replace
// *** p<0.01  ** p<0.05 * p<0.1// Stata会自动剔除多重共线性的变量
regress 评价量 团购价元 商品毛重kg A1 A2 A3 B1 B2 B3 B4 B5 B6 B7 B8 B9 C1 C2 D1 D2 D3 D4 D5 E1 E2 E3 E4 F1 F2 G1 G2 G3 G4
est store m2
reg2docx m2 using m2.docx, replace// 得到标准化回归系数
regress 评价量 团购价元 商品毛重kg, b // 画出残差图
regress 评价量 团购价元 商品毛重kg A1 A2 A3 B1 B2 B3 B4 B5 B6 B7 B8 B9 C1 C2 D1 D2 D3 D4 D5 E1 E2 E3 E4 F1 F2 G1 G2 G3 G4
rvfplot 
// 残差与拟合值的散点图
graph export a1.png ,replace
// 残差与自变量团购价的散点图
rvpplot  团购价元
graph export a2.png ,replace// 为什么评价量的拟合值会出现负数?
// 描述性统计并给出分位数对应的数值
summarize 评价量,d// 作评价量的概率密度估计图
kdensity 评价量 
graph export a3.png ,replace// 异方差BP检验
estat hettest ,rhs iid// 异方差怀特检验
estat imtest,white// 使用OLS + 稳健的标准误
regress 评价量 团购价元 商品毛重kg A1 A2 A3 B1 B2 B3 B4 B5 B6 B7 B8 B9 C1 C2 D1 D2 D3 D4 D5 E1 E2 E3 E4 F1 F2 G1 G2 G3 G4, r
est store m3
reg2docx m3 using m3.docx, replace// 计算VIF
estat  vif// 逐步回归(一定要注意完全多重共线性的影响)
// 向前逐步回归(后面的r表示稳健的标准误)
stepwise reg 评价量 团购价元 商品毛重kg A1 A3 B1 B2 B3 B4 B5 B6 B7 B9 C1 D1 D2 D3 D4 E1 E2 E3 F1 G1 G2 G3,  r pe(0.05)
// 向后逐步回归(后面的r表示稳健的标准误)
stepwise reg 评价量 团购价元 商品毛重kg A1 A3 B1 B2 B3 B4 B5 B6 B7 B9 C1 D1 D2 D3 D4 E1 E2 E3 F1 G1 G2 G3,  r pr(0.05)
// 向后逐步回归的同时使用标准化回归系数(在r后面跟上一个b即可)
stepwise reg 评价量 团购价元 商品毛重kg A1 A3 B1 B2 B3 B4 B5 B6 B7 B9 C1 D1 D2 D3 D4 E1 E2 E3 F1 G1 G2 G3,  r b pr(0.05)

Excel中数据透视表

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

11个指标的总体情况介绍在这里插入图片描述

Stata回归的语句

在这里插入图片描述
在这里插入图片描述

拟合优度 R2较低怎么办

(1)回归分为解释型回归预测型回归
预测型回归一般才会更看重𝑅2
解释型回归更多的关注模型整体显著性以及自变量的统计显著性和经济意义显著性即可。
(2)可以对模型进行调整,例如对数据取对数或者平方后再进行回归。
(3)数据中可能有存在异常值或者数据的分布极度不均匀。
在这里插入图片描述

标准化回归系数

在这里插入图片描述

在这里插入图片描述


http://chatgpt.dhexx.cn/article/xxFsBCIp.shtml

相关文章

多元回归分析

建模复习 目录 前言 一、回归的思想 1,介绍 2&#xff0c;回归分析的分类 3&#xff0c;数据类型 二、一元线性回归 1&#xff0c;一元线性函数拟合 2&#xff0c;一元线性回归模型 3&#xff0c;回归系数 1&#xff0c;回归系数的解释 2&#xff0c;内生性 3&…

VC2015运行库安装失败

VC2015安装失败&#xff0c;0x80240017-未指定的错误。 32位操作系统 64位操作系统 依次安装即可。 网盘链接&#xff1a;https://pan.baidu.com/s/1FGSAbpPuxTwszrQGMblPRg 提取码&#xff1a;z6ah 如遇到缺少什么.dll&#xff0c;可以通过增加某dll至环境变量中。

VC运行库修复安装一键安装

VC.RedistInstaller1.6.rar: http://u1.share.orcy.net.cn/file/12559096-413098201 如果上述安装不成功可尝试下载&#xff1a; Visual C AIO v2019.05.21&#xff08;自动强制安装谨慎双击&#xff09;.zip: http://u1.share.orcy.net.cn/file/12559096-413098413 ------…

phpstudy没有安装VC11、VC14运行库

文章目录 出现问题解决方案安装步骤安装VC11安装VC14验证结果出现问题 phpstudy2018–>切换版本php-5.5.36时—>提示错误 解决方案

Windows 技术篇-通过注册表查找vc运行库所在位置实战演示,通过ProductCode查看vc++运行库安装位置

vc 运行库各个版本的位置安装位置不尽相同&#xff0c;而且根据安装方式不同也有一定区别&#xff0c;总结了一套自己的方法&#xff0c;我们自己来探索&#xff1a; 我用 vc2015 举例&#xff0c;2015 有很多版本&#xff0c;每个版本对应的产品代码是不一样的&#xff0c;我…

vc2005运行库彻底卸载_VC运行库安装卸载工具-Visual C ++ AIO(VC运行库安装卸载工具)下载 v2019.05.21官方版--pc6下载站...

VisualCAIOVC运行库安装卸载工具包含了所有VisualC最新版&#xff0c;可以通过命令行静默安装&#xff0c;可以卸载所有已安装版本及更新为最新版&#xff0c;总之这是一个不错的VisualC运行库安装卸载程序。。 相关软件软件大小版本说明下载地址 Visual C AIO(VC运行库安装卸…

c语言 运行库 下载,Visual C++运行库合集

Visual C++运行库合集是基于Windows操作系统打造的可视化集成开发环境,能够为用户提供C、标准C++、ATL、MFC、OpenMP以及MSDIA等类库的运行支持,助广大用户能够更好在自己的电脑上运行VisualC++ 开发的应用程序。 Visual C++运行库具有集成开发环境,可提供编辑C语言,C++以及…

win10自带vc运行库吗?

运行库是系统中非常重要的组件&#xff0c;像一些绿化版的软件如果电脑没有运行库就无法运行&#xff0c;但是也不一定就要安装VC运行库一般而言&#xff0c;将相关的.dll文件复制出来&#xff0c;放在相关程序所在目录中就可以了。比如小编从网上下载了一款破解版的QQ&#xf…

phpStudy启动失败提示:缺少VC9运行库

镜像是官方2008 64位中文版 按照提示安装了VC9以后 软件依旧无法运行阿帕奇&#xff0c;提示缺少VC9运行库这是因为&#xff1a;64位系统除了要装64位的运行库也要装32位的运行库32位的VC9运行库下载&#xff1a;http://www.microsoft.com/zh-CN/download/details.aspx?id5582…

php程序检测不到vc9,XAMPP2016中文精简版启动失败 缺少运行库解决办法

[摘要] XAMPP是一款强大的建站集成软件包&#xff0c;但XAMPP2016 中文精简版在启动的时候会出现“缺少运行库”“程序检测不到VC9运行库”等问题&#xff0c;其实只需要正确安装vc9库就能解决问题了。 XAMPP是一款强大的建站集成软件包&#xff0c;对于经常折腾WordPress的博主…

请自行检查是否安装VC9运行库??

phpStudy是一款PHP调试环境的程序集成包&#xff0c;该程序包集成最新的ApachePHPMySQLphpMyAdminZendOptimizer&#xff0c;一次性安装&#xff0c;无须配置即可使用&#xff0c;是非常方便、好用的PHP调试环境。 1、程序自带FTP服务器&#xff0c;支持多用户&#xff0c;无需…

phpStudy启动失败时的解决方法 提示缺vc9运行库

php5.3、5.4和apache都是用vc9编译&#xff0c;电脑必须安装vc9运行库才能运行。 php5.5、5.6是vc11编译&#xff0c;如用php5.5、5.6必须安装vc11运行库。 php7.0、7.1是vc14编译&#xff0c;如用php7.0、7.1必须安装vc14运行库。 vc9和vc11运行库下载&#xff1a;http://www.…

django2.0调用银联支付接口实现银联支付

准备工作&#xff1a; 1.银联技术开放平台注册&#xff1a;https://open.unionpay.com/tjweb/acproduct/list?apiservId448 2.点击网关支付 --> 我要测试 &#xff08;按照提示下载密钥&#xff09; 3.安装需要的模块 pip install pyOpenSSL 代码实现&#xff1a; 目录结…

小程序调银联支付接口

这几天接了一个需求&#xff0c;将之前的项目支付接口改成银联的支付接口&#xff0c;简单说一下&#xff0c;对于没有接触过支付的小伙伴可能会有那么一丢丢启发… 环境&#xff1a;微信小程序银联支付 文档&#xff1a;公司提供的开发文档银联官方文档 框架&#xff1a;Dub…

【java支付一 】java整合银联支付

1.注册银联账号后进入测试地址 传送门 2.下载源码 银联源码地址 3.根据需求&#xff08;这里我们肯定使用JAVA&#xff09;选择不同的开发包&#xff0c;导入到项目中 4.修改 Java Version SDK (通用版)\ACPSample_B2C\src 文件中acp_sdk.propertites 证书以及配置回调的地址…

银联网关支付demo

对接银联支付接口&#xff0c;通过一个例子向商家支付金额。 1.首先在银联开放平台下载支付Demo&#xff0c;点击链接 或者直接拿我修改好的demo,链接: https://pan.baidu.com/s/1FywgOf5j_EYj5NQYHPeGqg 提取码: d2hp 建议拿我的现成版demo(修改了一些问题),解压后按照下面…

银联支付流程

本文的前提是你已经申请好了银联的相关资料&#xff0c;即将进入集成阶段或者遇到坑了&#xff08;没错。我踩了 吐槽下 这东西真是渣&#xff09;&#xff0c;不bb了&#xff0c;直接开始吧 照着文档把相关的so jar data.bin文件拷贝到相应的文件夹&#xff0c;权限&#xff…

java银联支付

貌似最近银联出了什么活动,公司急需接入银联支付, 作为写代码的我们 , 只能服从命令,特地记录下接入银联的过程 ,后续还会说接入支付宝和微信的亲自体验历程.................................................................... 1.申请商户 首先得去银联那里开通商户,这个…

谈谈银联 js 支付

业务场景&#xff1a;银联 JS 支付指二维码为收单机构订单的 URL&#xff0c;用户扫描二维码后在 APP 浏览器中打开收单机构的 H5 页面&#xff0c;收单机构在确认支付后调用银联统一网关&#xff0c;由银联调用 APP 完成支付的场景。 银联 JS 支付为丰富 APP 受理范围&#x…

springboot整合银联支付B2C

springboot整合银联支付B2C 前期准备 需要注册银联&#xff0c;登录&#xff0c;下载相关的sdk 这里是整合B2C 注册&#xff0c;登录 注册登录地址 https://open.unionpay.com/tjweb/login 下载sdk sdk下载地址: https://open.unionpay.com/tjweb/acproduct/list?apiSvc…