【9.0】 数学建模 | 多元线性回归详解 | state软件实现 | 附详细代码

一、前言

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

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

在这里插入图片描述

1.3 数据的分类
  • 横截面数据:在某一时间点收集的不同对象的数据,例如我们自己发放问卷得到的数据、全国各省份2018年GDP的数据、大一新生今年体测的得到的数据
  • 时间序列数据:对同一对象在不同时间连续观察所取得的数据,例如从出生到现在,你的体重的数据(每年生日称一次)、中国历年来GDP的数据、在某地方每隔一小时测得的温度数据
  • 面板数据:对同一对象在不同时间连续观察所取得的数据(多个对象,多个时间点),例如2008‐2018年,我国各省份GDP的数据
1.4 不同数据类型的处理方法

在这里插入图片描述
说明

  • 建模比赛中,前两种数据类型最常考到;面板数据较为复杂,是经管类学生在中级计量经济学中才会学到的模型
  • 横截面数据往往可以使用回归来进行建模,我们通过回归可以得到自变量与因变量之间的相关关系以及自变量的重要程度
  • 时间序列数据往往需要进行我们进行预测,时间序列模型的选择也很多,大家需要选择合适的模型对数据进行建模

二、一元线性回归

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

2.1 内生性的分析

在这里插入图片描述

说明:如果误差项 μ \mu μ含有与已经添加的自变量相关的变量,且该变量和因变量 y y y相关,则存在内生性(简单来说就是在进行回归分析的时候遗漏了变量)

2.2 核心解释变量和控制变量

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

  • 核心解释变量:我们最感兴趣的变量,因此我们特别希望得到对其系数的一致估计(当样本容量无限增大时,收敛于待估计参数的真值)
  • 控制变量:我们可能对于这些变量本身并无太大兴趣;而之所以把它们也放入回归方程,主要是为了“控制住” 那些对被解释变量有影响的遗漏因素
    在这里插入图片描述
2.3 何时取对数

取对数意味着原被解释变量对解释变量的弹性,即百分比的变化而不是数值的变化

目前,对于什么时候取对数还没有固定的规则,但是有一些经验法则

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

取对数的好处

  • 减弱数据的异方差性
  • 如果变量本身不符合正态分布,取了对数后可能渐近服从正态分布
  • 模型形式的需要,让模型具有经济学意义
2.4 四类模型回归系数的解释
  • 一元线性回归 : 𝑦 = 𝑎 + 𝑏𝑥 + 𝜇,x每增加1个单位,y平均变化b个单位
    在这里插入图片描述
  • 双对数模型 : 𝑙𝑛𝑦 = 𝑎 + 𝑏𝑙𝑛𝑥 + 𝜇,x每增加1%,y平均变化b%
    在这里插入图片描述
  • 半对数模型 : 𝑦 = 𝑎 + 𝑏𝑙𝑛𝑥 + 𝜇,x每增加1%,y平均变化b/100个单位
    在这里插入图片描述
  • 半对数模型:𝑙𝑛𝑦 =𝑎 +𝑏𝑥 + 𝜇,x每增加1个单位,y平均变化(100b)%
    在这里插入图片描述
2.5 虚拟变量X的设置

如果自变量中有定性变量,例如性别、地域等,就需要在回归中设置虚拟变量,同时为了避免多重共线性的影响,引入的虚拟变量的个数一般是分类数减去1
在这里插入图片描述


三、示例
3.1 普通最小二乘估计法OSL

题目:

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

  • 以评价量为因变量,分析其它变量和评价量之间的关系;
  • 以评价量为因变量,研究影响评价量的重要因素。

数据(关注公众号,回复“多元回归即可获取”)
在这里插入图片描述
数据描述性统计的结果(自己用state软件生成,然后用Excel制作)
在这里插入图片描述
代码:

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

state回归的语句

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

拟合优度 R 2 R^2 R2比较低的解决办法

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

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

引入的自变量越多,拟合优度会变大。但我们倾向于使用调整后的拟合优度,如果新引入的自变量对SSE的减少程度特别少,那么调整后的拟合优度反而会减小(论文当中一般选择调整之后的拟合优度进行分析)

3.2 标准化回归

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

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

注意:在进行回归分析时,只需要分析回归系数显著的自变量
在这里插入图片描述


四、异方差问题

在之前的回归分析中,我们都默认了扰动项是球型扰动项。球型扰动项:满足“同方差”和“无自相关”两个条件
在这里插入图片描述
如果扰动项存在异方差:

  • OLS估计出来的回归系数是无偏、一致的
  • 假设检验无法使用(构造的统计量失效了)
  • OLS估计量不再是最优线性无偏估计量
异方差的检验方法
  • 图形法(只能大致的说明问题)
  1. 在进行回归之后,输入以下命令

rvfplot

// 残差与拟合值的散点图

graph export a1.png ,replace

在这里插入图片描述
分析:当拟合值增大时,数据变得分散,方差变大,所以存在异方差

  1. 在进行回归之后输入以下命令:
// 残差与自变量团购价的散点图
rvpplot  团购价元
graph export a2.png ,replace

在这里插入图片描述
分析:数据在团购价格很低的时候,分散程度较大,存在异方差

  • 假设检验法
  1. Bp检验
    在这里插入图片描述
    代码:
Stata命令(在回归结束后使用):
estat hettest ,rhs iid

结果:

Breusch-Pagan / Cook-Weisberg test for heteroskedasticity 
         Ho: Constant variance
         Variables: 团购价元 商品毛重kg A1 o.A2 A3 B1 B2 B3 B4 B5 B6 B7 o.B8 B9 C1 o.C2 D1 D2 D3 D4 o.D5 E1 E2 E3
                    o.E4 F1 o.F2 G1 G2 G3 o.G4

         chi2(24)     =    59.54
         Prob > chi2  =   0.0001

分析:

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

  1. 怀特检验
    在这里插入图片描述
    代码:
Stata命令(在回归结束后使用):
// 异方差怀特检验
estat imtest,white

结果:

在这里插入图片描述
分析:在95%置信水平下,P值小于0.05,拒绝原假设,即存在异方差

异方差的解决办法
1. 使用OLS + 稳健的标准误

如果发现存在异方差,一种处理方法是,仍然进行OLS 回归,但使用稳健标准误。这是最简单,也是目前通用的方法。只要样本容量较大,即使在异方差的情况下,若使用稳健标准误,则所有参数估计、假设检验均可照常进行。换言之,只要使用了稳健标准误,就可以与异方差“和平共处”了。

代码:

// 使用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

结果:

在这里插入图片描述

2. 广义最小二乘法GLS

原理:方差较大的数据包含的信息较少,我们可以给予信息量大的数据(即方差较小的数据更大的权重)
缺点:我们不知道扰动项真实的协方差矩阵,因此我们只能用样本数据来估计,这样得到的结果不稳健,存在偶然性。

提醒:在大多数情况下应该使用“OLS + 稳健标准误”


五、多重共线性

在这里插入图片描述
5.1 检验多重共线性
在这里插入图片描述
代码:

Stata计算各自变量VIF的命令(在回归结束后使用):
estat vif

结果:
在这里插入图片描述

5.2多重共线性的处理办法
  • 如果不关心具体的回归系数,而只关心整个方程预测被解释变量的能力,则通常可以不必理会多重共线性(假设你的整个方程是显著的)。这是因为,多重共线性的主要后果是使得对单个变量的贡献估计不准,但所有变量的整体效应仍可以较准确地估计
  • 如果关心具体的回归系数,但多重共线性并不影响所关心变量的显著性,那么也可以不必理会。即使在有方差膨胀的情况下,这些系数依然显著;如果没有多重共线性,则只会更加显著
  • 如果多重共线性影响到所关心变量的显著性,则需要增大样本容量,剔除导致严重共线性的变量(不要轻易删除哦,因为可能会有内生性的影响),或对模型设定进行修改

六、逐步回归分析
1.向前逐步回归

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

2.向后逐步回归

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

3.实现代码
// 逐步回归(一定要注意完全多重共线性的影响)
// 向前逐步回归
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)
// 向后逐步回归
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)

提醒

  • x1 x2 … xk之间不能有完全多重共线性(和regress不同哦),之前回归时,Stata告诉了我们哪些自变量是完全多重共线性的(实际上在每个分类变量中任意去除一个元素即可)
  • 可以在后面再加参数b和r,即标准化回归系数或稳健标准误
4.逐步回归的说明
  • 向前逐步回归和向后逐步回归的结果可能不同
  • 不要轻易使用逐步回归分析,因为剔除了自变量后很有可能会产生新的问题,例如内生性问题

七、补充state语法
// (1) 用已知变量生成新的变量 
generate lny = log(评价量)  
generate price_square = 团购价元 ^2
generate interaction_term = 团购价元*商品毛重kg

// (2) 修改变量名称,因为用中文命名变量名称有时候可能容易出现未知Bug
rename 团购价元 price

更多有关于多元回归的经典获奖论文,关注公众号,回复,“多元回归”,即可免费领取!!!
在这里插入图片描述

  • 8
    点赞
  • 97
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值