引言
CSDN的小伙伴们大家好!本篇文章将和大家共同学习数模比赛中经常用到的一种回归算法——多元线性回归。目前,关于数模中多元线性回归的教学大多都是从相关原理出发,再结合例题进行讲解。然而,很多算法的原理对于非专业学生来说往往显得晦涩难懂。鉴于很多小伙伴和我一样,并非相关专业的学生,只是希望在数模比赛中能够实际应用一些有用的算法,因此,本文将重点介绍多元线性回归在数模比赛中的适用题型和具体的应用步骤。对于其中涉及到的相关原理,感兴趣的小伙伴们可以自行查阅相关书籍或数学建模资料进行深入学习。
目录
回归分析介绍
多元线性回归是回归分析的一种方法。接下来将简单介绍回归分析,有助于大家对回归分析有一个总体把握,为学习相关算法打下基础。
回归分析作为数据分析领域中最为基础且核心的分析工具,其重要性不言而喻。面对绝大多数的数据分析问题,我们都可以巧妙地运用回归的思想来找到解决之道。回归分析的核心任务(使命),是通过深入研究自变量X与因变量Y之间的相关关系,尝试揭示Y的形成机制,并最终达到通过已知X来准确预测Y的目的。
回归的使命
接下来,我们来详细探讨回归分析的三大使命:
使命1:识别与判断
回归分析的首要任务,是识别并判断哪些X变量与Y变量之间存在真实的相关关系,而哪些则不是。在统计学中,有一个非常重要的研究领域,那就是“变量选择”。为了实现这一目标,我们可以运用逐步回归法、lasso回归等方法,来筛选出与Y变量真正相关的X变量。
使命2:确定相关关系的方向
在成功去除了那些与Y不相关的X变量之后,我们接下来要关注的是那些重要的、有用的X变量。回归分析需要回答的一个关键问题是:这些有用的X变量与Y之间的相关关系是正相关还是负相关?这一问题的答案,对于我们理解变量之间的相互作用机制具有重要意义。
使命3:赋予不同X变量不同的权重
在确定了哪些X变量是重要的之后,我们还需要进一步考虑这些变量之间的相对重要性。为此,回归分析会赋予不同的X变量不同的权重,也就是不同的回归系数。通过这样的方式,我们可以更清晰地了解到不同变量在影响Y变量时所起到的作用大小,从而更准确地把握变量之间的相对重要性。
回归的分类
回归分析是一个庞大的家族,其中包含了多种类型的回归方法,这些方法的划分主要依据是因变量Y的类型。具体来说,常见的回归分析有五类:线性回归、0-1回归(也称为逻辑回归)、定序回归、计数回归以及生存回归。
类型 | 模型 | Y的特点 | 例子 |
---|---|---|---|
线性回归 | OLS、GLS(最小二乘) | 连续数值型变量 | GDP,收入,产量 |
0-1回 | logistic回归 | 二值变量(0-1) | 是否违约,是否结婚 |
定序回归 | probit定序回归 | 定序变量 | 等级评定 |
计数回归 | 泊松回归 | 计数变量 | 每分钟车流量 |
生存回归 | Cox等比例风险回归 | 生存变量(截断变量) | 企业、产品寿命 |
数据的分类
回归分析归根到底是对数据进行回归分析,而不同问题涉及到数据的类型也不尽相同,了解学习数据类型对于我们选择模型有着至关重要的作用。数据大致可分为三类,分别是横截面数据、时间序列数据和面板数据。
类型 | 定义 | 特点 |
---|---|---|
横截面数据 | 横截面数据是在同一时间点上收集的多个个体或对象的数据。 | 每个个体或对象只被观察一次,数据之间没有时间序列的关系。 |
时间序列数据 | 时间序列数据是在不同时间点上收集的同一个体或对象的数据。 | 数据按照时间顺序排列,每个时间点上的数据都与前一个时间点上的数据有关联。 |
面板数据 | 面板数据是在不同时间点上收集的多个个体或对象的数据。 | 结合了横截面数据和时间序列数据的特点,既包含多个个体或对象,又包含时间序列的信息。 |
建模比赛中,前两种数据类型最常考到;面板数据较为复杂,是经管类学生在中级计量经济学中才会学到的模型。
横截面数据往往可以使用回归来进行建模,我们通过回归可以得到自变量与因变量之间的相关关系以及自变量的重要程度;时间序列数据往往需要我们进行预测,时间序列模型的选择也很多,需要选择合适的模型对数据进行建模。
适用题型
下面回到本文的主线任务——多元线性回归,多元线性分析一般用于影响因素分析:通过多元线性回归,可以分析哪些自变量对因变量有显著影响,以及这种影响的强度和方向。例如:
1. 在市场营销中,分析广告支出、产品价格、促销活动等多个因素对销售额的影响。
2. 以评价量为因变量,分析其它变量和评价量之间的关系
3. 以评价量为因变量,研究影响评价量的重要因素
设计到的知识
为了更清晰地理解多元线性回归及其相关的关键概念,我们将对多元线性回归模型以及涉及的名词——特别是内生性和多重共线性——进行简略而系统的介绍。
基本原理
在多元线性回归中,因变量()被假定为自变量()的线性组合加上一个随机误差项()。这个模型可以用数学表达式表示为:
其中,
- 是因变量,
- 是自变量(解释变量),
- 是截距项(intercept),
- 是回归系数(regression coefficients),表示每个自变量对因变量的影响大小,
- 是随机误差项,表示模型中未考虑到的其他影响因素或测量误差。
异方差
异方差是指在一系列随机变量中,其方差并非都是相同的。在经典线性回归模型中,一个重要的假定是总体回归函数中的随机误差项满足同方差性,即所有误差项都具有相同的方差。然而,如果这一假定不满足,即误差项的方差随解释变量的变化而变化,那么这种情况就被称为异方差。
危害
- OLS估计出来的回归系数是无偏、一致的。
- 假设检验无法使用(构造的统计量失效了)。
- OLS估计量不再是最优线性无偏估计量(BLUE)。
解决方法
(1)使用OLS + 稳健的标准误
原理:如果发现存在异方差,一种处理方法是,仍然进行OLS 回归,但使用稳健标准误。这是最简单,也是目前通用的方法。只要样本容量较大,即使在异方差的情况下,若使用稳健标准误,则所 有参数估计、假设检验均可照常进行。换言之,只要使用了稳健标准误,就可以与异方差“和平共处”了。
(2)广义最小二乘估计法GLS
原理:方差较小的数据包含的信息(对于模型 的稳定程度所做的贡献)较多,我们可以给予信息量大的数据更大的权重(即方差较小的数据给予更大的权重)。
内生性
在中,如果满足误差项和所有的自变量均不相关,则称该回归模型具有外生性;如果相关,则存在内生性,内生性会导致回归系数估计的不准确(不满足无偏和一致性)。
比如,如果销量()只显著的受到价格()和品质()的影响,如果建立回归函数,其中扰动项中包含了自变量,该回归模型具有内生性,这与建立模型计算出的回归系数存在显著差异。
核心解释变量和控制变量
无内生性(no endogeneity)要求所有解释变量均与扰动项不相关。这个假定通常太强,因为解释变量一般很多(比如5‐15个解释变量),且需要保证它们全部外生。 是否可能弱化此条件?答案是肯定的,如果解释变量可以区分为核心解释变量与控制变量两类。
核心解释变量:我们最感兴趣的变量,因此我们特别希望得到对其系数的一致估计(当样本容量无限增大时,收敛于待估计参数的真值 )。
控制变量:我们可能对于这些变量本身并无太大兴趣;而之所以把它们也放入回归方程,主要是为了 “控制住” 那些对被解释变量有影响的遗漏因素。
在实际应用中,我们只需保证核心解释变量与扰动项不相关即可。
多重共线性
多重共线性是回归分析中的一个常见问题,尤其在处理多个自变量时更为常见。它表现为自变量之间的高度线性关系,即一个自变量的变化可以很好地由其他一个或多个自变量的变化来预测。这种高度相关性使得自变量在模型中无法提供独立的信息,从而影响模型的解释能力和预测精度。
危害
多重共线性对回归分析模型带来的危害主要体现在以下几个方面:
- 参数估计不准确:多重共线性会导致回归系数的估计不准确,因为自变量之间的相关性会使得回归系数无法准确反映各自变量对因变量的独立影响。
- 无法判断单独变量的影响:在多重共线性的情况下,由于自变量之间的相互影响,很难单独判断每个自变量对因变量的影响程度,从而降低了模型的解释能力。
- 自变量显著性检验失去意义:多重共线性会使得自变量的显著性检验变得不可靠。即使某个自变量在统计上显著,但由于其与其他自变量的高度相关性,其显著性可能并不反映真实的因果关系。
解决方法
(1)如果不关心具体的回归系数,而只关心整个方程预测被解释变量的能力,则通常可以不必理会多重共线性(假设你的整个方程是显著的)。这是因为多重共线性的主要后果是使得对单个变量的贡献估计不准,但所有变量的整体效应仍可以较准确地估计。
(2)如果关心具体的回归系数,但多重共线性并不影响所关心变量的显著性,那么也可以不必理会。即使在有方差膨胀的情况下,这些系数依然显著;如果没有多重共线性,则只会更加显著。
(3) 如果多重共线性影响到所关心变量的显著性,则需要增大样本容量,剔除导致严重共线性的变量(不要轻易删除,因为可能会有内生性的影响),或对模型设定进行修改。
(4)如果是为了筛选变量,可以使用lasso回归等方法。
虚拟变量
如果自变量中有定性变量,例如性别、地域等,在回归中应引入虚拟变量。当某个定性变量有n个类别时,应在回归方程中引入n-1个虚拟变量,即“为了避免完全多重共线性的影响,引入虚拟变量的个数一般是分类数减1”,剩一个没有引入的作为对照组。
例如:我们要研究性别对于工资()的影响,性别是定性变量,只有男女之分,因此我们引入两个虚拟变量和,只能为0或1,代表是男性,代表是女性。在回归方程中引入(此时作为对照组)建立模型,此时回归系数可以理解为在其他自变量给定的情况下,男性工资相对于女性工资(对照组)的差异。
回归步骤
学习相关知识后下面正式进入回归,本文使用STATA软件进行回归分析。
首先在STATA中导入数据,接下来进行如下操作
描述性统计
描述性统计是指运用制表和分类、图形以及计算概括性数据来描述数据特征的各项活动。它专注于描述和分析数据集的主要特征和特性,而不对更大的总体进行概括或推断。
(1)定量数据
STATA命令:summarize 变量1 变量2 ... 变量n
(也可简写为sum,添加变量双击右边变量窗口的变量即可)。
返回表格示例(以实际操作为准)
(2)定性数据
STATA命令:tabulate 变量名,gen(A)
定性数据只能用tabulate一个一个进行分析,并且每一个定性数据都要进行分析(因为要构建虚拟变量),可以简写为tab,STATA会返回对应的这个变量的频率分布表,并在变量区生成对应的虚拟变量(以A开头,命令中的“A”可换)。如果某个定性变量有m个类别,则STATA会生成的m个虚拟变量,(如:性别变量会生成两个虚拟变量)。
返回表格示例(以实际操作为准)
OLS回归
STATA命令:regress 因变量 自变量1 自变量2 ... 自变量n (可简写为reg)
这里的自变量包括定量数据和在描述性统计时生成的全部虚拟变量,Stata会自动检测数据的完全多重共线性问题并自动将将某个虚拟变量作为对照组。
返回表格示例(以实际操作为准)
(图片错别字 标准误)
P值小于0.05,代表在95%置信水平下,该回归系数显著的异于0,
若P值大于0.05,该回归系数与0没有显著区别,我们也不需要考虑该项的回归
(我们也可以将置信概率改为90%,将P与0.10比较即可)
检验异方差
在前面的回归分析中,我们默认了扰动项是球型扰动项(满足“同方差”和“无自相关”),而在模型中可能存在异方差现象。
两种方法检验:
BP检验
STATA命令(在回归结束后使用): estat hettest ,rhs iid
返回表格示例(以实际操作为准)
原假设:扰动项不存在异方差
P值(Prob)小于0.05,说明在95%的置信水平下拒绝原假设,即我们认为扰动项存在异方差。
怀特检验
STATA命令(在回归结束后使用): estat imtest,white
返回表格示例(以实际操作为准)
原假设:扰动项不存在异方差
P值小于0.05,说明在95%的置信水平下拒绝原假设,即我们认为扰动项存在异方差。
解决异方差
两种方法
(1)使用OLS + 稳健的标准误
(2)广义最小二乘法GLS
Stock and Watson (2011)推荐,在大多数情况下应该使用“OLS + 稳健标准误”。
使用OLS + 稳健的标准误STATA语句:regress 因变量 自变量1 自变量2 ... 自变量n , robust (robust可简写为r)
检验多重共线性
STATA计算各自变量VIF的命令(在回归结束后使用): estat vif
STATA采用方差膨胀因子(VIF)法检验多重共线性,第i个自变量VIF计算公式为,n为自变量个数。值越大,说明第i个自变量与其他自变量的相关性越大,表示多重共线性问题越严重。定义回归模型的VIF值为所有VIF中的最大值,即。
解决多重共线性
解决多重共线性的方法在上文已经提及,在此不再赘述。在实际生活中,解决多重共线性问题的最佳选择是增加样本量,但在建模中,这一方法很难实现,但其实大多情况下多重共线性并不会对结果产生较大影响,但是如果结果与我们的设想差异较大的话,可以考虑使用更加优质的模型进行求解。
解释
通过STATA进行回归分析只是模型求解的一部分,重要的是对求解的结果进行合理的解释,尤其注意虚拟变量前系数的解释。并且只需解释显著的即可(P小于0.05),因为这些才是影响因变量的重要因素。常数项我们一般不考虑实际意义。
标准化回归
若要找出最重要的影响因素,还需进行标准化回归(为了去除量纲的影响),求出标准化回归系数。(下面的回归也是默认了扰动项是球型扰动项)。对数据进行标准化,就是将原始数据减去它的均数后,再除以该变量的标准差,计算得到新的变量值,新变量构成的回归方程称为标准化回归方程,回归后相应可得到标准化回归系数。
STATA命令:regress 因变量 自变量1 自变量2 ... 自变量n , beta (regress可以简写为reg,beta可简写为b)
返回表格示例(以实际操作为准)
标准化系数的绝对值越大,说明对因变量的影响就越大(只关注显著的回归系数)。
推荐数模学习课程
行文至此,本文关于多元线性回归的探讨暂告一段落,本文所涵盖的知识点虽然基础,却为初学者铺设了一条坚实的学习之路,使每一个人都能够稳步迈入数据分析与建模的广阔世界。本文尚有许多不足之处,也请大家批评指正。
在此,我满怀热情地推荐一门由知名讲师清风老师精心打造的数模学习课程。这门课程不仅是作者个人成长的见证,更是无数学子提升自我、突破极限的阶梯。课程总时长跨越了令人瞩目的70小时,深度解析了数学建模领域内最为常见且实用的20余种模型,从理论根基到实战应用,无不娓娓道来。每节课都精心设计了模型原理的透彻讲解与编程实践的细致指导,更辅以针对性的课后作业,确保学员在理论学习与实战演练中交替前行,知识得以牢固掌握。尤为值得一提的是,清风老师的授课风格幽默风趣,寓教于乐,让原本可能枯燥的数学建模学习变得生动有趣,极大地激发了学员的学习兴趣与探索欲。想要深入了解这门课程,或是寻找更多数模学习资源的你,不妨关注“数学建模学习交流”在某站或微信公众号上的官方账号,那里不仅有详尽的课程介绍,更有来自五湖四海的学友与你一同交流心得,共赴数模学习之旅的星辰大海。