使用R语言进行协整关系检验

Python012

使用R语言进行协整关系检验,第1张

使用R语言进行协整关系检验

协整检验是为了检验非平稳序列的因果关系,协整检验是解决伪回归为问题的重要方法。首先回归伪回归例子:

伪回归Spurious regression伪回归方程的拟合优度、显著性水平等指标都很好,但是其残差序列是一个非平稳序列,拟合一个伪回归:

#调用相关R包

library(lmtest)

library(tseries)

#模拟序列

set.seed(123456)

e1=rnorm(500)

e2=rnorm(500)

trd=1:500

y1=0.8*trd+cumsum(e1)

y2=0.6*trd+cumsum(e2)

sr.reg=lm(y1~y2)

#提取回归残差

error=residuals(sr.reg)

#作残差散点图

plot(error, main="Plot of error")

#对残差进行单位根检验

adf.test(error)

## Dickey-Fuller = -2.548, Lag order = 7, p-value = 0.3463

## alternative hypothesis: stationary

#伪回归结果,相关参数都显著

summary(sr.reg)

## Residuals:

## Min 1Q Median 3Q Max

## -30.654 -11.526 0.359 11.142 31.006

## Coefficients:

## Estimate Std. Error t value Pr(>|t|)

## (Intercept) -29.32697 1.36716 -21.4 <2e-16 ***

## y2 1.44079 0.00752 191.6 <2e-16 ***

## Residual standard error: 13.7 on 498 degrees of freedom

## Multiple R-squared: 0.987, Adjusted R-squared: 0.987

## F-statistic: 3.67e+04 on 1 and 498 DF, p-value: <2e-16

dwtest(sr.reg)

## DW = 0.0172, p-value <2.2e-16

恩格尔-格兰杰检验Engle-Granger第一步:建立两变量(y1,y2)的回归方程,第二部:对该回归方程的残差(resid)进行单位根检验其中,原假设两变量不存在协整关系,备择假设是两变量存在协整关系。利用最小二乘法对回归方程进行估计,从回归方程中提取残差进行检验。

set.seed(123456)

e1=rnorm(100)

e2=rnorm(100)

y1=cumsum(e1)

y2=0.6*y1+e2

# (伪)回归模型

lr.reg=lm(y2~y1)

error=residuals(lr.reg)

adf.test(error)

## Dickey-Fuller = -3.988, Lag order = 4, p-value = 0.01262

## alternative hypothesis: stationary

error.lagged=error[-c(99,100)]

#建立误差修正模型ECM.REG

dy1=diff(y1)

dy2=diff(y2)

diff.dat=data.frame(embed(cbind(dy1, dy2),2))#emed表示嵌入时间序列dy1,dy2到diff.dat

colnames(diff.dat)=c("dy1","dy2","dy1.1","dy2.1")

ecm.reg=lm(dy2~error.lagged+dy1.1+dy2.1, data=diff.dat)

summary(ecm.reg)

## Residuals:

## Min 1Q Median 3Q Max

## -2.959 -0.544 0.137 0.711 2.307

## Coefficients:

## Estimate Std. Error t value Pr(>|t|)

## (Intercept) 0.0034 0.1036 0.03 0.97

## error.lagged -0.9688 0.1585 -6.11 2.2e-08 ***

## dy1.1 0.8086 0.1120 7.22 1.4e-10 ***

## dy2.1 -1.0589 0.1084 -9.77 5.6e-16 ***

## Residual standard error: 1.03 on 94 degrees of freedom

## Multiple R-squared: 0.546, Adjusted R-squared: 0.532

## F-statistic: 37.7 on 3 and 94 DF, p-value: 4.24e-16

par(mfrow=c(2,2))

plot(ecm.reg)

Johansen-Juselius(JJ)协整检验法,该方法是一种用向量自回归(VAR)模型进行检验的方法,适用于对多重一阶单整I(1)序列进行协整检验。JJ检验有两种:特征值轨迹检验和最大特征值检验。我们可以调用urca包中的ca.jo命令完成这两种检验。其语法:

ca.jo(x, type = c("eigen", "trace"), ecdet = c("none", "const", "trend"), K = 2,spec=c("longrun", "transitory"), season = NULL, dumvar = NULL)

其中:x为矩阵形式数据框;type用来设置检验方法;ecdet用于设置模型形式:none表示不带截距项,const表示带常数截距项,trend表示带趋势项。K表示自回归序列的滞后阶数;spec表示向量误差修正模型反映的序列间的长期或短期关系;season表示季节效应;dumvar表示哑变量设置。

set.seed(12345)e1=rnorm(250,0,0.5)e2=rnorm(250,0,0.5)e3=rnorm(250,0,0.5)#模拟没有移动平均的向量自回归序列;u1.ar1=arima.sim(model=list(ar=0.75), innov=e1, n=250)u2.ar1=arima.sim(model=list(ar=0.3), innov=e2, n=250)y3=cumsum(e3)y1=0.8*y3+u1.ar1y2=-0.3*y3+u2.ar1#合并y1,y2,y3构成进行JJ检验的数据库;y.mat=data.frame(y1, y2, y3)#调用urca包中cajo命令对向量自回归序列进行JJ协整检验vecm=ca.jo(y.mat)jo.results=summary(vecm)#cajorls命令可以得到限制协整阶数的向量误差修正模型的最小二乘法回归结果vecm.r2=cajorls(vecm, r=2)vecm.r2## Call:lm(formula = substitute(form1), data = data.mat)## Coefficients:## y1.d y2.d y3.d## ect1 -0.33129 0.06461 0.01268## ect2 0.09447 -0.70938 -0.00916## constant 0.16837 -0.02702 0.02526## y1.dl1-0.22768 0.02701 0.06816## y2.dl1 0.14445 -0.71561 0.04049## y3.dl1 0.12347 -0.29083 -0.07525## $beta## ect1 ect2## y1.l2 1.000e+00 0.0000## y2.l2 -3.402e-18 1.0000## y3.l2 -7.329e-01 0.2952

正文共: 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日

去首页

看看更多热门内容