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

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

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

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)

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

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

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

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

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

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

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

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

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

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

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

这里看一查看系数,同样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)#进行拟合

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

你可能感兴趣的:(r语言确定最优滞后阶数)