多重共线性、异方差和自相关性

Python016

多重共线性、异方差和自相关性,第1张

多重共线性是解释变量存在线性关系或者近似的线性关系,多重共线性影响的模型一般为底层是线性的模型,例如:回归、SVM等

如果变量间不存在多重共线性,则变量系数组成的矩阵应该是满秩的,且变量间不存在共线性不代表变量间不存在非线性关系

产生变量相关性的原因有很多,一般为经济变量之间的相同变化趋势,模型中包含滞后变量和截面数据等等

1.1多重共线性的检验

&计算相关系数,因为相关系数是对线性相关的度量

&对于线性回归来说,删除或者增加变量系数是不是有较大变化

&系数的正负号是否与现实相违背

&系数通不过显著性检验

&变量之间做回归,计算可决系数和VIF=1/(1-可决系数)来度量,也称为方差扩大因子法

1.2多重共线性的影响后果

&共线性使最小二乘法预估的参数不确定且估计值方差较大,方差较大又会导致参数的置信区间增大

&回归显著但是回归系数通不过检验,甚至会出现回归系数的正负号的不到合理的解释

但是如果遇到必须使用这些变量度量且为了预测Y,则可以对这些变量进行线性组合

1.3多重共线性的处理方法

&删除变量--这个方法一般不推荐使用,因为删除变量会导致异方差增大,异方差后面会讲到

&增加样本容量--这个好像现实中也不是很好实现,毕竟能用的数据肯定都会用的,时效性不强的也没太大用

&变换模型--对数据求差分;计算相对指标;吧相关变量做线性组合,即小类合并成大类;----比较靠谱的做法

&逐步回归----常用方法,添加删除变量之后做可决系数、F检验和T检验来确定是否增加或者剔除变量,若果增加变量对这些指标的影响较小,也认为指标为多余的,如果增加指标引起R和F的变动且通不过T检验,说明存在共线性---常常使用的方法

&岭回归---但是岭回归的参数k不好选择,k的选择严重影响方差和偏倚程度

什么是异方差呢,我们前面写线性回归的时候说过,做线性回归应假定随机扰动项满足l平均值和同方差,同方差表示的是所有变量对其均值的分散程度相同,由于u=0,所以也可以说是Y围绕回归线均值的分散程度,但是如果u对不同x呈现的离散程度不同,则称u具有异方差性,也就是被解释变量的观测值分散程度随着解释变量的变化而 变化,也可以说异方差是某个解释变量引起的

2.1产生异方差的原因

模型的设定(例如多重共线性变量的删除,但是变量与y具有相关性,也会产生异方差)

测量误差和截面数据的影响

2.3异方差的影响

&存在异方差将不能保证最小二乘法估计的方差最小,但是模型的拟合依然是无偏性和一致性,但不具有有效性,即不具有最小方差

&异方差会导致参数的方差增大,如果还是使用不存在异方差时的方法进行估计,则会低估参数方差

&破坏t检验和f检验的有效性

&由于参数估计不满足方差最小,所以不是有效的,则对Y的预测也是无效的

2.4异方差的检验

&相关图检验---观察随着x的增加y的离散程度是否增加,如果增加说明存在递增的异方差

&残差图分析

&White检验

基本思想是如果存在异方差,x与u存在相关关系,所以white检验不但可以检验异方差,还可以检验时哪个变量导致的异方差,但该方法要求大样本,但是解释变量过多又会导致丧失自由度,所以一般用u与预测值y和y的平方做回归,用F检验检验是否存在异方差,H0所有系数为0不存在异方差,否则存在异方差

2.5异方差的处理

&加权最小二乘法

方差越小,样本偏离均值的程度越小,越重视,权重越大,否则越小,一般权重使用1/x,1/x2,1/根号x

&模型对数变换,log之后缩小了异方差的范围

自相关即u存在自相关,即cov(u)不等于0,不满足线性回归的假定

3.1自相关产生的原因

经济活动滞后和经济系统的惯性

3.2自相关的后果

&存在自相关将不能保证最小二乘法估计的方差最小,但是模型的拟合依然是无偏性和一致性,但不具有有效性,即不具有最小方差,所以估计的参数不是最佳线性无偏估计

&低估真实的方差会导致高估t检验的值,夸大参数显著性,本来不重要的变量会变为重要的变量,失去t检验的意义

&方差的变大导致预测变量的区间增加,降低了预测的精度

3.3自相关的检验

&残差图---et与e(t-1)的相关图

&DW检验

但是DW检验的前提条件较多,首先需要u为一阶自回归,而且回归必须存在常数项

3.4自相关的处理

&差分法

&科克伦--奥克特迭代

基本思想是对变量回归,求残差u,u=相关系数*u(t-1)+随机扰动项

然后根据计算出来的相关系数做差分,yt-相关系数*y(t-1)=yt*

用yt*和xt*做回归

然后令最终计算的参数=上一步计算的参数/(1-上一步的相关系数)

迭代直到两次相关系数相差很小时作为最佳的相关系数

正文共: 4314字 54图

预计阅读时间: 11分钟

嘿喽,我是则已。这是stata的第五期学习。

前面学习了聚类分析、ols回归分析。今天来学习:回归检验。学到这里,恭喜你,你已经对最基本回归分析整个流程都走了一遍。接下来涉及的非线性回归,Logit回归,因变量受限回归,时间序列分析,面板数据分析都与最基本的回归方法有一些联系。

划线部分是自己要研究的变量。

回归检验

前面我们学习了最小二乘回归,这种回归方法简单并且满足我们大部分的研究需要,但是能进行这种回归的前提是有条件的:变量无异方差,变量无自相关,变量无多重共线性。 所以在进行回归之后我们要检验一下数据是否存在这样的问题,如果存在了,我们要进行处理之后再进行一次最小二乘回归分析。本回归检验包含三部分:异方差检验与应对、自相关检验与应对、多重共线性检验与应对。 01 异方差检验与应对 能进行回归分析的一个基本假设:因变量的方差不随自身预测值和其他自变量的值变化而改变。但是如果在回归时不满足这个假设条件,就会出现异方差的情况。常用来判断是否出现异方差的检验办法有:绘制残差序列图、怀特检验、BP检验 解决出现异方差的的方法有:使用标准差进行回归、使用加权最小二乘回归分析方法进行回归。 首先对数据进行描述性分析,看看数据特征: summarize V1 V2 V3 V4 V5,detail

结果分析:描述性分析可以进行简单的数字分析,也可以进行比较仔细地数字分析,这里进行的是比较详细的分析,故加了detail。进行描述性分析是为了看看样本中是否存在极端的数据,看看极大值、极小值,还有数据之间是不是差距过大。 数据整体不错,进行下一步相关性分析:correlate V1 V2 V3 V4 V5

结果分析:大家可以发现在回归前数据必定会进行描述性分析和相关性分析,进行相关性分析是为了看看变量之间有没有关系。可以看出它们的关系还是可以接受的。 进行回归分析:regress V1 V2 V3 V4 V5

结果分析:F值为437.69,P值为0可以看出模型是非常显著的。R-squared超过了92%说明模型解释能力近乎完美的。但是V5的P值是0.518,比较不显著的。由下表Coef、cons可以得到该模型的方程式: V1=0.7203941V2+0.4363412V3+0.426517V4-0.2198884V5+0.3897354 获取方差和协方差矩阵:vce

结果分析:自变量方差和协方差都不大。 检验各个变量系数的显著性:test V2 V3 V4 V5

结果分析:发现自变量联合系数检验是非常显著的。通过了假设检验。 预测因变量的拟合值和残差: predict yhat predict e,resid

以上回归步骤操作完毕,下面我们来进行检验是否存在异方差,绘制残差与因变量的散点图:rvfplot

图形分析:Fitted values指回归得到的拟合值,Residuals指残差。可以看出,残差随着拟合值的不同而不同,尤其是在4-8,变动那是相当剧烈。,同一个拟合值对应非常多残差。所以存在一定异方差。 再来看看残差与自变量的散点图: rvpplot V2

结果分析:还是可以看到残差在0-4的波动还是比较剧烈的。数据还是存在一定的异方差。 绘制残差序列图只是比较粗略的看到是否存在异方差,为了精确测量,应该使用怀特检验:estat imtest,white

结果分析:怀特检验的原假设:数据是同方差,不存在异方差。我们观察P值为0是非常显著地拒绝了原假设,P值越小越拒绝,所以我们认为数据存在严重的异方差的。 下面我们用BP检验:estat hettest,iid

BP检验有很多方法,上面用的是得克尼克值来检验的。 也可以用方程右边的解释变量来解释异方差:estat hettest,rhs iid

也可以指定变量来进行BP检验:estat hettest V2,rhs iid

结果解释:BP检验的原假设也是:数据是同方差,不存在异方差。 既然我们已经发现了数据存在异方差,我们必须重新回归一次。 使用稳健性标准差对数据进行回归:regress V1 V2 V3 V4 V5,robust

结果分析:可以看出模型的F值是175.79,P值是0,模型也是非常显著的。R值也是超过92%,说明模型的解释力度很强。同时也可以得到模型的方程式,特别是V5的P值减,显著性得到一定的提高。可见我们利用稳健性标准差进行回归取得了一定的效果。 试试另外一种:使用加权平均数最小二乘回归分析来解决数据的异方差性:reg V1-V5

先删除第一回归分析预测的残差e,并重新进行预测e,然后进行平方变换: drop e predict e,resid gen ee=e^2 在残差进行平方变换的基础上再进行取对数: gen lnee=ln(ee) 再进行一次回归:reg lnee V2,nocon

删除掉第一次回归预测的拟合值,并重新预测拟合值: drop yhat predict yhat 对预测的拟合值进行指数变换:gen yhatthat=exp(yhat)

最后进行加权最小二乘回归分析:reg V1 V2 V3 V4 V5[aw=1/yhatthat]

结果分析:模型的F值,P值及R方值都得到了很大程度的提高。这就是我们使用加权最小二乘回归分析得到模型的改善效果。

02 自相关检验与应对 自相关性指随机误差项的各期望值之间存在相关关系,引起自相关性的原因有很多:经济变量惯性作用、经济行为的滞后性等。自相关性会使T检验不再显著,模型的预测功能失效。判断存在方法:绘制残差序列图,BG检验,Box-Pierce检验,DW检验。 解决自相关的方法:自相关异方差稳健的标准差进行回归、使用广义最小二乘回归分析方法进行回归。

跟上面一样,先进行描述性分析,相关性分析,回归分析,获取方差和协方差矩阵,检各个变量系数显著性,预测模型拟合值和残差。

由于自相关性往往出现在时间序列数据,故对这类数据进行分析还需要添加一些额外步骤: 首先对时间序列数据进行定义: tsset month

结果分析:把整个数据的变量定义为以月为周期的时间序列数据。 绘制残差滞后一期的散点图:scatter e l.e

结果分析:l.e指残差数据滞后一期,如要残差数据滞后两期则是l2.e。可以看到数据之间存在正相关的关系,即它y轴随着纵轴的数据变大。 如要更精致的图,我们可以绘制残差的自相关图,探索一下它的自相关阶数: ac e

结果分析:横轴表示滞后的阶数lag,阴影部分表示95%的自相关置信区间。阴影部分之外,表示自相关系数显著不为0。例如:从左往右第一条竖线的在阴影之外表示一阶自相关系数显著不为零。所以说数据主要存在一阶自相关。 我们也可以绘制一下偏自相关图:pac e

结果分析:从这个偏自相关图,同样可以看出这个一阶自相关。 还可以用BG检验自相关性:estat bgodfre

结果分析:BG检验的原假设是:数据没有自相关性。可以看到P值远远小于0.05,所以显著拒绝了原假设。即数据存在自相关。 还可以用BPQ假设检验自相关:wntestq e

结果分析:BPQ检验的原假设也是:数据不存在自相关。可以看出是显著拒绝了原假设的。 还可以用DW检验:estat dwatson

结果分析:DW检验的原假设是数据没有自相关的值正好等于2。我们的数据是0.35,所以远远小于2,存在正自相关。 既然已经知道了存在自相关性,我们要设法改进模型。 异方差稳健的标准差对数据进行重新回归分析,首先确定异方差稳健的标准差进行回归之后的阶数:di 49^0.25

结果分析:这个阶数是样本个数的0.25次幂,所以确定了阶数是3。 再进行异方差自相关稳健性的标准差分析:newey profit asset,lag(3)

结果分析:利用确定因变量profit,自变量asset,阶数3来进行分析。我们可以看到模型是非常显著的。 可以使用广义的最小二乘回归分析方法来解决数据的异方差,corc估计法: prais profit asset,corc

结果分析:怎么看还是和前面一样。特别的,我们看到最后那两行,发现DW的值由0.35变化到了1.92,基本上接近了2。所以模型消除了自相关。 广义的最小二乘估计法去解决异方差问题,还有pw估计法: prais profit asset,nolog

结果分析:同样的,pw估计方也是DW检验值接近2,基本上消除了自相关性。

03 多重共线性检验与应对 多重共线性指如果某自变量能够被其他自变量通过线性组合得到,则存在严重的多重共线性。若一个自变量能被其他自变量解释,则存在相近的多重共线性。多重共线性会导致系数估计不准确,使部分系数的显著性很弱。 解决多重共线性的方法有两种:剔除不显著的变量、进行因子分析提取相关性较弱的几个主因子

跟上面一样,先进行描述性分析,相关性分析,回归分析。

结果分析:注意我们回归全是自变量,看到回归分析后的结果,这些自变量的系数P值都大于0.05,说明系数存在不显著的问题,判断数据可能存在多重共线性。 进行多重共线性检验:estat vif

结果分析:vif指方差膨胀因子,方差膨胀因子和合理值是10以内,可看出我们的结果是41.77, 所以存在较高的多重共线性。 剔除较高的V5,重新进行回归:regress V2 V3 V4 V6

再进行多重共线性检验:estat vif

结果分析:可以发现V6方差因子值较大。但是整体的方差值降到10.85,得到很大的改善。 再剔除V6,回归并检验: regress V2 V3 V4 estat vif

结果分析:可以看出膨胀因子变成1,多重共线性得到很大改善。不过看到V4的回归系数显著性不是很好。 试试删除V4再进行回归检验: regress V2 V3 estat vif

结果分析:模型的解释能力R方值、模型的显著性都近乎完美。所以V3是最能解释V1的变量。 还可以用因子分析来检验模型的多重共线性:factor V3 V4 V5 V6,pcf

结果分析:可以看出只保留了一个主成因子,这个因子特征值和解释力度都很大。 提取公因子变量:predict f1

回归分析:reg V2 f1

vif检验:vif

结果分析:可以看出多重共线性没了。模型中各个系数的值也是非常显著的。

今天学习了回归检验,它是在对回归之后的模型进行检验的方法。主要涉及异方差检验,自相关性检验,多重共线性检验。一旦数据出现这些问题:前两个问题可以通过绘制图形大致了解是否存在,后一个问题只要在回归之后分析各自变量的系数的P值来判断是否显著从而判断出数据是否存在。解决它们的方法多种多样,根据自己的需要选择适当方法。好啦,今天的学习到这里!如果有什么不懂,或者需要软件和教学资源请到后台联系我。

- End -

“如果喜欢这期内容 那么请关注我吧”

r 语言dw检验诊断序列的自相关性

好的铁观音一般多少钱一斤

精选推荐

广告

R语言使用lm函数构建线性回归模型、使用lrtest包的dwtest函数执行残差自相关检验Durbin–Watson检验(Autocorrelation Durbin–Watson Test)

487阅读·0评论·0点赞

2022年7月11日

自相关性的诊断以及修正方法r语言代码

2.3W阅读·14评论·21点赞

2015年10月13日

R语言:相关性分析检验

964阅读·1评论·0点赞

2022年10月3日

违背基本假设的几种情况——自相关性(R语言)

4398阅读·0评论·8点赞

2019年1月20日

r语言确定最优滞后阶数_计量经济学与R语言(四)自相关

3061阅读·0评论·0点赞

2020年12月8日

r语言 相关性作图_R语言学习指南(6) 初探相关性热图

7649阅读·0评论·3点赞

2020年12月24日

高清播放机,图片大全,点击查看详情!

精选推荐

广告

r语言实现自相关分析和偏相关分析

1.4W阅读·0评论·6点赞

2020年8月6日

R语言--数据挖掘7--预测性建模:线性回归

3830阅读·0评论·4点赞

2021年5月10日

异方差与R语言实践

1.1W阅读·8评论·10点赞

2020年3月23日

R语言与回归分析几个假设的检验

3.9W阅读·3评论·12点赞

2012年11月10日

r语言相关性分析_R语言 相关性分析与检验

4473阅读·0评论·4点赞

2020年12月8日

R语言使用lm函数构建线性回归模型、使用lrtest包的dwtest函数执行残差自相关检验Durbin–Watson检验、使用acf函数执行自相关的可视化检验

401阅读·0评论·0点赞

2022年9月12日

DW(德宾-沃森)统计量临界值表

12.7W阅读·2评论·5点赞

2015年12月9日

学习R过程中的一些小总结

257阅读·0评论·0点赞

2020年3月22日

【零基础Eviews实例】02自相关(序列相关)的检验与修正

4.7W阅读·10评论·49点赞

2020年12月4日

R语言之违背基本假设的几种情况xt4.13

5549阅读·3评论·24点赞

2020年11月2日

检验杜宾 瓦森检验法R语言_回归分析 | R语言回归算法、模型诊断

1527阅读·0评论·1点赞

2020年12月23日

R语言使用lm函数构建线性回归模型、使用lrtest包的dwtest函数执行残差自相关检验Durbin–Watson检验、设置alternative参数为two.sided执行双边检验是否存在负自相关

28阅读·0评论·0点赞

2022年8月24日

moran指数 r语言_使用R进行空间自相关检验

3592阅读·0评论·4点赞

2020年12月21日

R语言使用lm函数构建线性回归模型、使用car包中的oulierTest函数识别样本数据中可能的离群值( identify possible outliers)

319阅读·0评论·0点赞

2022年7月11日

去首页

看看更多热门内容

安装:R语言和它的UI界面非常安装比较简单,这里就不重复描述了,只需要到R的上,对应自己电脑的操作系统对应的版本即可。R提供window、linux和MAC OS X版本,对应即可,如笔者的是普通的window 32位。百度R,左上角的download,选择合适的镜像。如果找不到安装,那就不适合继续学习R语言了。

安装好之后,我们打开R界面,可以看到,R的界面非常简洁,只有一个菜单栏,和一个默认新建的R Console 控制台。

R Console 控制台的使用:我们可以在R Console 控制台内输入脚本进行运算、绘图和分析、如我们输入运算:1+2,按回车键。可以看到系统在下一行内弹出了一个3,有点类似于cmd的操作。

我们也可以对编辑脚本,打开文件--新建--new script,可以在弹出的R编辑器--R Editor中进行编辑录入脚本的操作,编辑完毕可以进行保存和读入等一系列操作

从上面的界面和操作可以看出,单单使用R自带的gui界面,难以进行方便快捷的操作,因此我们需要使用到R的辅助UIRStudio。同样地我们安装好并打开它。我们看到RStudio界面比R自身内容丰富很多,整个界面切成多个模块进行同步操作显示,脚本区、控制台区、文件区非常清晰易用。

同样的,我们操作1+2、1+3的运算,可以在脚本区编辑录入1+2,回车下一行继续录入1+3,这时我们看到编辑区有两行代码,证明这个区域与运行区是分离的,可以方便我们自由地编写修改脚本。

如果我们需要运行刚才编辑的两行脚本,我们可以选中它,按Ctrl+回车即可进行运行,选中1行则执行一行,选中全部则执行全部。这里操作运算了3次,对应不同的运算结果显示在了编辑区下方的控制台Console 区域。同样地,我们可以对这类脚本进行保存、打开重编辑、运行等一系列操作