r 语言dw检验诊断序列的自相关性_计量经济学与R语言(四)自相关

b7fc35487c700016e48414c25646e7b8.png

经典多元回归的基本假设之一就是误差之间没有相关性。如果误差的各期值之间存在一定的相关关系,则成为误差的自相关。

library(ggplot2)
library(foreign)

data7.1<-read.dta("case 7-1.dta")
lm1<-lm(FOOD~IN+EX , data=data7.1)
summary(lm1) 
e<-summary(lm1)$resid #提取残差序列
plot(e)

0254220cee16ba21db043f0a843fd2d3.png

这里可以看到误差在远点附近很难直接通过通过原点,这样就说明可能存在自相关性。

以下给出两种检测方法,DW,和拉格朗日乘数法。

DW检验法只能检验一阶自相关。是根据回归模型的残差序列建立的DW统计量,

DW=2(1-p) p就是误差一阶拟合的系数。R语言中直接给出了DW的检测函数。

library(lmtest)
#相关性检验
#DW检验2(1-p)=DW
dwtest(lm1)

d2893ef9b798c9f12e9d0f7af17ad1b2.png

这里p值小于0.05 ,则说明误差存在一阶自相关,

LM(拉格朗日乘数),就是如果怀疑存在p阶自相关,将解释变量与p阶误差一起作为解释变量与被解释变量进行回归。得出的结果根据可决系数构建LM统计量。LM可以检测项检测的阶数的相关性。R中lmtest保重给出了检验函数。

#拉格朗日乘数检验,order为检验的阶数
bgtest(lm1,order=1)#library(latest)
bgtest(lm1,order=1)$coeff#查看系数

3256178a3f44f0418299aece0c770dcd.png

这里看一查看系数,同样lm统计量对应的p值小于0.05,可以说明存在2阶自相关。

解决的方法就是差分法,根据计算出的误差自相关的阶数和拟合出的系数,这里就给出一阶差分的公式。

n<-length(y)
m<-length(x)

yt<-y[-1]  # 因为当期的要和滞后一期的个数一样,所以减去一个
yt_1<-y[1:(n-1)]  #y的滞后一期
xt<-x[-1]
xt_1<-x[1:(m-1)]

gd_y<-yt-p*yt_1       #p为计算出的自相关的系数
gd_x<-xt-p*xt_1


lm_gd<-lm(gd_y~gd_x)#进行拟合

当然,如果自相关的阶数越高,差分滞后拟合损失的自由度也会增加,所以要收集较多的数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值