回归分析是数据分析中最基础也是最重要的分析工具,绝大多数的数据分析问题,都可以使用回归的思想来解决。回归分析的任务就是,通过研究自变量X和因变量Y的相关关系,尝试去解释Y的形成机制,进而达到通过X去预测Y的目的。常见的回归分析有五类:线性回归、0‐1回归、定序回归、计数回归和生存回归,其划分的依据是因变量Y的类型。本讲我们主要学习线性回归。
文章目录
- 回归的思想
- 回归分析的使命
- 回归分析的分类
- 数据的分类
- 不同数据类型的处理方法
- 数据的收集
- 一元线性回归
- 对于线性的理解
- 回归系数的解释
- 内生性的探究
- 内生性的蒙特卡罗模拟
- 核心解释变量和控制变量
- 回归系数的解释
- 什么时候取对数?
- 四类模型回归系数的解释
- 四类模型回归系数的解释
- 特殊的自变量:虚拟变量X
- 虚拟变量的解释
- 多分类的虚拟变量设置
- 含有交互项的自变量
- 回归实例
- Stata软件介绍
- 拟合优度 R方 较低怎么办
- 标准化回归系数
- Stata标准化回归命令
- 再来看一道例题
- 扰动项要满足的条件
- 异方差
- 检验异方差
- 异方差的假设检验
- BP检验的结果
- 怀特检验
- 异方差的处理方法
- 使用OLS + 稳健的标准误
- 多重共线性
- 检验多重共线性
- 多重共线性处理方法
- 逐步回归分析
- Stata实现逐步回归法
- 完全多重共线性的错误
- 向前逐步回归
- 向后逐步回归
- 逐步回归的说明
- 课后作业
回归的思想
回归分析:研究X和Y之间相关性的分析。
第一个关键词:相关性
相关性 ≠ 因果性
在绝大多数情况下,我们没有能力去探究严格的因果关
系,所以只好退而求其次,改成通过回归分析,研究相关关系。
第二个关键词是:Y
Y是什么?俗称因变量。取义,因为别人的改变,而改变的变量。
在实际应用中,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+,那这种数据就是截断的数据)(生存变量)
第三个关键词是:X
Y是因变量(因为别人的改变,而改变的变量)。
而X是用来解释Y的相关变量,所以X被称为自变量。
当然,另一套定义方法是:X为解释变量,Y为被解释变量。
回归分析的任务就是,通过研究X和Y的相关关系,尝试去解释Y的形成机制,进而达到通过X去预测Y的目的
0-1回归的例子
回归分析的使命
使命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相关,但未添加到回归模型中的变量
如果这些变量和我们已经添加的自变量相关,则存在内生性
内生性的蒙特卡罗模拟
核心解释变量和控制变量
无内生性(no endogeneity)要求所有解释变量均与扰动项不相关。
这个假定通常太强,因为解释变量一般很多(比如,5‐15个解释变量),且需要保证它们全部外生。
是否可能弱化此条件?答案是肯定的,如果你的解释变量可以区分为核心解释变量与控制变量两类。
核心解释变量:我们最感兴趣的变量,因此我们特别希望得到对其系数的一致估计(当样本容量无限增大时,收敛于待估计参数的真值 )。
控制变量:我们可能对于这些变量本身并无太大兴趣;而之所以把它们也放入回归方程,主要是为了 “控制住” 那些对被解释变量有影响的遗漏因素。
在实际应用中,我们只要保证核心解释变量与𝝁不相关即可。
回归系数的解释
什么时候取对数?
伍德里奇的《计量经济学导论,现代观点》里,第六章176-177页有详细的论述;
取对数意味着原被解释变量对解释变量的弹性,即百分比的变化而不是数值的变化;
目前,对于什么时候取对数还没有固定的规则,但是有一些经验法则:
(1)与市场价值相关的,例如,价格、销售额、工资等都可以取对数;
(2)以年度量的变量,如受教育年限、工作经历等通常不取对数;
(3)比例变量,如失业率、参与率等,两者均可;
(4)变量取值必须是非负数,如果包含0,则可以对y取对数ln(1+y);
取对数的好处:(1)减弱数据的异方差性(2)如果变量本身不符合正态分布,取了对数后可能渐近服从正态分布(3)模型形式的需要,让模型具有经济学意义。
四类模型回归系数的解释
1、一元线性回归:𝑦 = 𝑎 + 𝑏𝑥 + 𝜇,x每增加1个单位,y平均变化b个单位;
2、双对数模型:𝑙𝑛𝑦 = 𝑎 + 𝑏𝑙𝑛𝑥 + 𝜇,x每增加1%,y平均变化b%;
四类模型回归系数的解释
3、半对数模型:𝑦= 𝑎 + 𝑏𝑙𝑛𝑥 + 𝜇,x每增加1%,y平均变化b/100个单位;
4、半对数模型:𝑙𝑛𝑦= 𝑎 + 𝑏𝑥 + 𝜇,x每增加1个单位,y平均变化(100b)%。
特殊的自变量:虚拟变量X
如果自变量中有定性变量,例如性别、地域等,在
回归中要怎么处理呢?
例如:我们要研究性别对于工资的影响(性别歧视)。
虚拟变量的解释
多分类的虚拟变量设置
实证探讨我国P2P网络贷款中是否存在显著的地域歧视问题?
为了避免完全多重共线性的影响,引入虚拟变量的个数一般是分类数减1。
含有交互项的自变量
price:房价 sqrft:住房面积 bdrms:卧室数量 bthrms:卫生间数量
回归实例
现有某电商平台846条关于婴幼儿奶粉的销售信息,每条信息由11个指标组成。其中,评价量可以从一个侧面反映顾客对产品的关注度。
请对所给数据进行以下方面的分析,要求最终的分析将不仅仅有益于商家,更有益于宝妈们为宝贝选择适合自己的奶粉。
- 以评价量为因变量,分析其它变量和评价量之间的关系;
- 以评价量为因变量,研究影响评价量的重要因素。
Stata软件介绍
Stata是一个统计分析软件,但它也具有很强的程序语言功能,这给用户提供了一个广阔的开发应用的天地,用户可以充分发挥自己的聪明才智,熟练应用各种技巧,真正做到随心所欲。事实上,Stata的ado文件(高级统计部分)都是用Stata自己的语言编写的。
Stata其统计分析能力远远超过了SPSS,在许多方面也超过了SAS!由于Stata在分析时是将数据全部读入内存,在计算全部完成后才和磁盘交换数据,因此计算速度极快(一般来说, SAS的运算速度要比
SPSS至少快一个数量级,而Stata的某些模块和执行同样功能的SAS模块比,其速度又比SAS快将近一个数量级!)Stata也是采用命令行方式来操作,但使用上远比SAS简单。其生存数据分析、纵向数据(重复测量数据)分析等模块的功能甚至超过了SAS。用Stata绘制的统计
图形相当精美,很有特色。
导入数据
文件 – 导入 – Excel表格
Excel中数据透视表
11个指标的总体情况介绍
Stata回归的语句
regress y x1 x2 … xk
(默认使用的OLS:普通最小二乘估计法)
加入虚拟变量回归
Stata会自动检测数据的完全多重共线性问题。
拟合优度 R方 较低怎么办
(1)回归分为解释型回归和预测型回归。
预测型回归一般才会更看重𝑅方 。
解释型回归更多的关注模型整体显著性以及自变量的统计显著性和经济意义显著性即可。
(2)可以对模型进行调整,例如对数据取对数或者平方后再进行回归。
(3)数据中可能有存在异常值或者数据的分布极度不均匀。
标准化回归系数
现有某电商平台846条关于婴幼儿奶粉的销售信息,每条信息由11个指标组成。其中,评价量可以从一个侧面反映顾客对产品的关注度。
请对所给数据进行以下方面的分析,要求最终的分析将不仅仅有益于商家,更有益于宝妈们为宝贝选择适合自己的奶粉。
- 以评价量为因变量,分析其它变量和评价量之间的关系;
- 以评价量为因变量,研究影响评价量的重要因素。
为了更为精准的研究影响评价量的重要因素(去除量纲的影响),我们可考虑使用标准化回归系数。
对数据进行标准化,就是将原始数据减去它的均数后,再除以该变量的标准差,计算得到新的变量值,新变量构成的回归方程称为标准化回归方程,回归后相应可得到标准化回归系数。
标准化系数的绝对值越大,说明对因变量的影响就越大(只关注显著的回归系数哦)。
Stata标准化回归命令
regress y x1 x2 … xk,beta
(1)为什么常数项没有标准化回归系数?
常数的均值是其本身,经过标准化后变成了0.
(2)为啥和之前的回归结果完全相同,除了多了最后那一列标准化回归系数?
对数据进行标准化处理不会影响回归系数的标准误,也不会影响显著性
再来看一道例题
扰动项要满足的条件
横截面数据容易出现异方差的问题;
时间序列数据容易出现自相关的问题。
异方差
如果扰动项存在异方差:
(1)OLS估计出来的回归系数是无偏、一致的。
(2)假设检验无法使用(构造的统计量失效了)。
(3)OLS估计量不再是最优线性无偏估计量(BLUE)。
注意:这里的信息和熵权法里面确定权重时的信息不是 一个意思。异方差这里出现的信息可以理解为对于模型的稳定程度所做的贡献,异方差是指各个扰动项的方差不相同,那么方差较大的扰动项破坏模型稳定性的程度就较大,我们就说它包含的信息量减少。而在熵权法中,方差越大,说明这个指标对于不同个体而言的变化程度就大,那么我们在评价时就 不能轻易忽视这个变量
怎么解决异方差:
(1)使用OLS + 稳健的标准误
(2)广义最小二乘估计法GLS
原理:方差较小的数据包含的信息较多,我们可以给予信息量大的数据更大的权重(即方差较小的数据给予更大的权重)
检验异方差
拟合值出现负数的原因
有75%的奶粉品牌的评价量小于1109,评价量超过17000的只有10%不到,而样本均值却达到了15800。这说明评价量的分布极度不平衡,大多数个体的评价量都较小。从右图中也直观的说明了绝大部分品牌的评价量都较小这一特征。
异方差的假设检验
Stata命令(在回归结束后使用):
estat hettest ,rhs iid
BP检验的结果
原假设:扰动项不存在异方差P值小于0.05,说明在95%的置信水平下拒绝原假设,即我们认为扰动项存在异方差。
怀特检验
怀特检验原假设:
不存在异方差
Stata命令(在回归结束后使用):
estat imtest,white
异方差的处理方法
如果扰动项存在异方差:
(1)OLS估计出来的回归系数是无偏、一致的。
(2)假设检验无法使用(构造的统计量失效了)。
(3)OLS估计量不再是最优线性无偏估计量(BLUE)。
怎么解决异方差:
(1)使用OLS + 稳健的标准误
如果发现存在异方差,一 种处理方法是,仍然进行OLS 回归,但使用稳健标准误。这是最简单,也是目前通用的方法。只要样本容量较大,即使在异方差的情况下,若使用稳健标准误,则所有参数估计、假设检验均可照常进行。换言之,只要使用了稳健标准误,就可以与异方差“和平共处”了。
(2)广义最小二乘法GLS
原理:方差较大的数据包含的信息较少,我们可以给予信息量大的数据(即方差较小的数据更大的权重)
缺点:我们不知道扰动项真实的协方差矩阵,因此我们只能用样本数据来估计,这样得到的结果不稳健,存在偶然性。
使用OLS + 稳健的标准误
regress y x1 x2 … xk,robust
多重共线性
检验多重共线性
Stata计算各自变量VIF的命令(在回归结束后使用):
estat vif
多重共线性处理方法
如果发现存在多重共线性,可以采取以下处理方法。
(1)如果不关心具体的回归系数,而只关心整个方程预测被解释变量的能力,则通常可以 不必理会多重共线性(假设你的整个方程是显著的)。这是因为,多重共线性的主要后果是使得对单个变量的贡献估计不准,但所有变量的整体效应仍可以较准确地估计。
(2)如果关心具体的回归系数,但多重共线性并不影响所关心变量的显著性,那么也可以不必理会。即使在有方差膨胀的情况下,这些系数依然显著;如果没有多重共线性,则只会更加显著。
(3) 如果多重共线性影响到所关心变量的显著性,则需要增大样本容量,剔除导致严重共线性的变量(不要轻易删除哦,因为可能会有内生性的影响),或对模型设定进行修改。
逐步回归分析
**向前逐步回归Forward selection:**将自变量逐个引入模型,每引入一个自变量后都要进行检验,显著时才加入回归模型。
(缺点:随着以后其他自变量的引入,原来显著的自变量也可能又变为不显著了,但是,并没有将其及时从回归方程中剔除掉。)
**向后逐步回归Backward elimination:**与向前逐步回归相反,先将所有变量均放入模型,之后尝试将其中一个自变量从模型中剔除,看整个模型解释因变量的变异是否有显著变化,之后将最没有解释力的那个自变量剔除;此过程不断迭代,直到没有自变量符合剔除的条件。(缺点:一开始把全部变量都引入回归方程,这样计算量比较大。若对一些不重要的变量,一开始就不引入,这样就可以减少一些计算。当然这个缺点随着现在计算机的能力的提升,已经变得不算问题了)
Stata实现逐步回归法
向前逐步回归Forward selection:
stepwise regress y x1 x2 … xk, pe(#1)
pe(#1) specifies the significance level for addition to the model; terms with p<#1 are eligible for addition(显著才加入模型中).
向后逐步回归Backward elimination:
stepwise regress y x1 x2 … xk, pr(#2)
pr(#2) specifies the significance level for removal from the model; terms with p>= #2 are eligible for removal(不显著就剔除出模型)
如果你觉得筛选后的变量仍很多,你可以减小#1或者#2
如果你觉得筛选后的变量太少了,你可以增加#1或者#2
注:
(1)x1 x2 … xk之间不能有完全多重共线性(和regress不同哦)
(2)可以在后面再加参数b和r,即标准化回归系数或稳健标准误
完全多重共线性的错误
之前回归时,Stata告诉了我们哪些自变量是完全多重共线性的
(实际上在每个分类变量中任意去除一个元素即可)
向前逐步回归
向后逐步回归
逐步回归的说明
(1)向前逐步回归和向后逐步回归的结果可能不同。
(2)不要轻易使用逐步回归分析,因为剔除了自变量后很有可能会产生新的问题,例如内生性问题。
课后作业
(1)如果你看了线性代数的推导pdf,请你用Matlab实现计算回归系数的函数。
该函数需要包含以下几个内容:第一:让用户决定是否包含截据项;第二:需要对自变量进行完全多重共线性诊断;第三:如果有能力,你设计的函数可以算出每个自变量对应的标准误,并计算出p值。(可将结果和Stata对照验证你的计算
是否正确)
(2)完成论文作业。