数学建模(NO.11多元线性回归分析)

一.应用

回归分析是数据分析中最基础也是最重要的分析工具,绝大多数的数据分析问题,都可以使用回归的思想来解决。
回归分析的任务就是通过研究自变量X和因变量Y的相关关系,尝试去解释Y的形成机制,进而达到通过X去预测Y的目的。
常见的回归分析有五类:线性回归、0‐1回归、定序回归、计数回归和生存回归,其划分的依据是因变量Y的类型。

二.三个关键词

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

三.目的

回归分析要完成的三个使命:

  1. 第一、识别重要变量;
  2. 第二、判断相关性的方向;
  3. 第三、要估计权重(回归系数)

四.回归模型分类

在这里插入图片描述

五.数据分类

1.三种数据

  1. 横截面数据:在某一时点收集的不同对象的数据。

例如:
(1)我们自己发行问卷得到的数据
(2)全国各省份2018年GDP的数据
(3)大一新生今年体测的数据

  1. 时间序列数据:对同一对象在不同时间连续观察所取得的数据。

例如:
(1)从出生到现在,你的体重的数据(每年生日称一次)。 (2)中国历年来GDP的数据。
(3)在某地方每隔一小时测得的温度数据。

  1. 面板数据:横截面数据与时间序列数据综合起来的一种数据资源

例如:
2008‐2018年,我国各省份GDP的数据。

2.模型与数据对应

在这里插入图片描述

六.数据收集网址

【简道云汇总】110+数据网站

虫部落数据搜索

【汇总】数据来源/大数据平台

大数据工具导航工具

数据平台

上面的数据多半都是宏观数据,微观数据市面上很少
大家可以在人大经济论坛搜索

另外也可以自己学习爬虫
(1)Python等软件爬取(需要编程基础,实际学习起来不困难)
网易云课堂:零基础21天搞定Python分布爬虫
(2)傻瓜式软件爬取(八爪鱼)

七.一元线性回归

1.概念

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

2.对“线性”理解

1.纠正线性

在这里插入图片描述
使用线性回归模型进行建模前,需要对数据进行预处理。
用Excel、Matlab、Stata等软件都可以

2. 预处理

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

3.什么时候取对数?

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

3.回归系数的解释

在这里插入图片描述
在这里插入图片描述
可以看到,引入了新的自变量价格后,对回归系数的影响非常大!!!
原因:遗漏变量导致的内生性
在这里插入图片描述

4.内生性探究

在这里插入图片描述
内生性的蒙特卡罗模拟
在这里插入图片描述

%% 蒙特卡洛模拟:内生性会造成回归系数的巨大误差
times = 300;  % 蒙特卡洛的次数
R = zeros(times,1);  % 用来储存扰动项u和x1的相关系数
K = zeros(times,1);  % 用来储存遗漏了x2之后,只用y对x1回归得到的回归系数
for i = 1: times
    n = 30;  % 样本数据量为n
    x1 = -10+rand(n,1)*20;   % x1在-1010上均匀分布,大小为30*1
    u1 = 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 ;  % 构造y
    k = (n*sum(x1.*y)-sum(x1)*sum(y))/(n*sum(x1.*x1)-sum(x1)*sum(x1)); % y = k*x1+b 回归估计出来的k
    K(i) = k;
    u = 5 * x2 + u;  % 因为我们回归中忽略了5*x2,所以扰动项要加上5*x2
    r = corrcoef(x1,u);  % 2*2的相关系数矩阵
    R(i) = r(2,1);
end
plot(R,K,'*')
xlabel("x_1和u'的相关系数")
ylabel("k的估计值")

在这里插入图片描述
相关系数绝对值越大,表示x1与干扰项越相关,代表内生性越大

5. 解释变量与控制变量

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

6.四类模型回归系数的解释

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

6.特殊的自变量

(1)虚拟变量X

如果自变量中有定性变量,例如性别、地域等,在回归中要怎么处理?
例如:我们要研究性别对于工资的影响(性别歧视)
在这里插入图片描述
在这里插入图片描述

(2) 含有交互项的自变量

在这里插入图片描述

八.stata操作

1.导入表格

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

2. 代码保存

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

3. 数据的描述性统计

(1)定量数据:summarize 变量1 变量2 … 变量n
在这里插入图片描述
复制到Excel后改动一下放到论文中
(2)定性数据:
tabulate 变量名,gen(A)
返回对应的这个变量的频率分布表,并生成对应的虚拟变量(以A开头)。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
查看加入虚拟变量的表格
在这里插入图片描述

4. 虚拟变量展示

使用Excel表格的数据透视图功能
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
也有可以多个变量进行
在这里插入图片描述
论文中最好有
在这里插入图片描述
也可以加上自变量,因变量

5.stata回归

(1)定量数据:

设置了评价量为观测值

regress 评价量 团购价元 商品毛重kg

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里论文需要用的R2需要进行调整
在这里插入图片描述

在这里插入图片描述

(2)定性数据

增加虚拟变量

tabulate 配方,gen(A)
tabulate 奶源产地 ,gen(B)
tabulate 国产或进口 ,gen(C)
tabulate 适用年龄岁 ,gen(D)
tabulate 包装单位 ,gen(E)
tabulate 分类 ,gen(F)
tabulate 段位 ,gen(G)

由于虚拟变量需要个数-1,设置一个对照组,如图stata自动将G4变为对照组

在这里插入图片描述

6.完成题目

在这里插入图片描述

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

整体进行

 reg  评价量 商品毛重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

结果
给虚拟变量选择对照组
在这里插入图片描述
表格:
在这里插入图片描述
观察得到只有两个数据在0.1以下,其余都在0.1以上
所以我们将置信度变为90%,由于小于0.1,所以拒绝原假设H0:系数=0,即,显著异于0
然后只用分析这两个数据就好
分析:
第一个,-29.77274:团购价格增加一单位,那么评价量减少29.77274
第二个:由于对照组是F2:羊奶粉,所以相比较于羊奶粉,使用牛奶粉评价量会增加 14894.55
这时候我们想把这个表格应用到论文中,但是太多了,放在附录中也可以,或者:

regress 评价量 团购价元 商品毛重kg
// 下面的语句可帮助我们把回归结果保存在Word文档中
// 在使用之前需要运行下面这个代码来安装下这个功能包(运行一次之后就可以注释掉了)
// ssc install reg2docx, all replace
// 如果安装出现connection timed out的错误,可以尝试换成手机热点联网,如果手机热点也不能下载,就不用这个命令吧,可以自己做一个回归结果表,如果觉得麻烦就直接把回归结果截图。
est store m1
reg2docx m1 using m1.docx, replace

在这里插入图片描述
打开,如下
在这里插入图片描述
整体表格化

// 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)


// 补充语法 (大家不需要具体的去学Stata软件,掌握我课堂上教给大家的一些命令应对数学建模比赛就可以啦)
// 事实上大家学好Excel,学好后应对90%的数据预处理问题都能解决
// (1) 用已知变量生成新的变量 
generate lny = log(评价量)  
generate price_square = 团购价元 ^2
generate interaction_term = 团购价元*商品毛重kg
// (2) 修改变量名称,因为用中文命名变量名称有时候可能容易出现未知Bug
rename 团购价元 price

九.知识补充

1.拟合优度 R2较低怎么办

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

2.关于拟合优度和调整后的拟合优度

我们引入的自变量越多,拟合优度会变大。但我们倾向于使用调整后的拟合优度,
如果新引入的自变量对SSE的减少程度特别少,那么调整后的拟合优度反而会减小。【论文可用】
在这里插入图片描述

标准化回归系数

为了更为精准的研究影响评价量的重要因素(去除量纲的影响),
我们可考虑使用标准化回归系数。
对数据进行标准化,就是将原始数据减去它的均数后,再除以该变量的标准差,计算得到新的变量值,新变量构成的回归方程称为标准化回归方程,回归后相应可得到标准化回归系数。
标准化系数的绝对值越大,说明对因变量的影响就越大(只关注显著的回归系数哦

Stata标准化回归命令

regress y x1 x2 … xk,beta

在这里插入图片描述
(1)为什么常数项没有标准化回归系数?
常数的均值是其本身,经过标准化后变成了0.
(2)为啥和之前的回归结果完全相同,除了多了最后那一列标准化回归系数?
对数据进行标准化处理不会影响回归系数的标准误,也不会影响显著性.

  • 11
    点赞
  • 85
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Matlab是一种功能强大的数学软件,可以用于多元线性回归分析数学建模多元线性回归是一种统计分析方法,用于建立多个自变量与一个因变量之间的关系模型。在数学建模中,多元线性回归可以用于预测和解释变量之间的关系,通过分析数据集中的多个变量来理解其之间的相互作用。 在Matlab中,可以使用多个内置的函数和工具箱来进行多元线性回归分析数学建模。首先,可以使用“polyfit”函数来拟合多元线性回归模型,并获得拟合的系数和截距。然后,可以使用“polyval”函数来根据模型和输入的自变量值来预测因变量的值。 此外,Matlab还提供了各种可视化工具,如散点图、线性回归图和残差图,以帮助分析和解释多元线性回归模型的结果。这些图形可以用于评估模型的拟合程度、检查残差是否满足模型假设,并识别离群值和异常观测。 在数学建模中,Matlab还可以用于确定最佳的自变量组合,以优化模型的拟合效果。使用工具箱中的特征选择函数,可以根据特定的准则选择最相关的自变量,从而减少模型中不必要的变量,提高模型的解释能力。 总而言之,Matlab是一种强大的工具,可用于多元线性回归分析数学建模。它提供了各种函数和工具箱,可以用于拟合模型、预测因变量、可视化结果以及优化模型的变量选择。使用Matlab进行多元线性回归分析数学建模,可以更好地理解变量之间的关系,并做出准确的预测和解释。 ### 回答2: Matlab作为一种强大的数学建模工具,可以通过多元线性回归分析数学建模问题进行求解。多元线性回归分析是一种常用的统计方法,用于建立和分析多个自变量与一个因变量之间的线性关系模型。在数学建模中,我们通常需要根据给定的数据集合,通过多元线性回归分析求解最佳拟合模型。 在Matlab中,可以使用内置的regress函数来进行多元线性回归分析。首先,我们需要准备好所需的数据集合,并且将自变量和因变量分别存储在不同的向量中。然后,使用regress函数进行回归分析,输入自变量矩阵和因变量向量,即可得到回归系数以及其他统计结果。 通过多元线性回归分析,我们可以了解自变量数量与因变量之间的关系,进而可以预测和优化因变量的取值。此外,通过对回归系数的分析,我们还可以了解各自变量对因变量的重要性以及它们之间的相互关系。 总之,Matlab提供了强大的多元线性回归分析工具,可以帮助我们在数学建模中对问题进行求解和分析。它可以通过对数据的拟合来研究和预测因变量,从而为解决实际问题提供了有效的数学模型建立方法。 ### 回答3: Matlab是一种功能强大的数值计算和数据分析软件,可以广泛应用于多元线性回归分析数学建模多元线性回归分析是一种统计方法,用于探究多个自变量对一个因变量的影响。 在Matlab中,我们可以使用regress函数进行多元线性回归分析。该函数可以根据给定的自变量和因变量数据集,计算出回归模型的系数和相关统计量。 首先,我们需要将自变量和因变量的数据导入到Matlab中,可以使用矩阵或向量的形式存储数据。然后,通过调用regress函数,指定自变量和因变量的位置,即可进行回归分析。函数的输出结果包括回归系数、残差、决定系数等。 使用Matlab进行数学建模时,可以利用多元线性回归分析来构建模型。通过收集和整理相关数据,建立自变量和因变量之间的数学关系,在回归分析中确定最佳拟合的回归方程。这个建立的模型可以用来预测未知的因变量值,或者进行参数估计和假设检验等。 在数学建模中,Matlab提供了丰富的工具箱和函数,可以用于数据可视化、模型拟合、参数估计、误差分析等。例如,通过绘制回归模型的拟合曲线和残差图,可以对模型的准确性进行评估。此外,还可以使用交叉验证等方法来评估模型的预测能力。 总而言之,Matlab可以用于实现多元线性回归分析数学建模。其强大的功能和灵活的编程环境使其成为进行数值计算和数据分析的理想工具,在科学研究和实际应用中得到了广泛的应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值