误差相关性与R语言
程序员文章站
2022-04-03 19:42:40
...
鄙人学习笔记
参考文献:《计量经济学模型及R语言应用》-王斌会
误差相关性理论指路:放宽基本假定的模型
误差自相关性检验
D-W检验
DW取值在不同区间内的误差相关性情况:
图示:
显然,DW ≈ 2(1-ρ),根据DW也可以近似计算出ρ ≈ 1 - DW/2
则:
拉格朗日乘数检验
举个例子1(DW检验)
模拟的数据:
n = 30
x0 <- c(1:n)
testdf <- data.frame(y = 0.5 + 0.2*x0 + rnorm(n, 0, 0.1)*x0,
x1 = x0*rnorm(n, 1, 0.1),
x3 = rnorm(n, 10, 5))
输入:
#误差自相关检验
library(lmtest)
#D-W检验
lm04 <- lm(y ~ x1 + x3)
dwtest(lm04)
输出:
由结果可知DW值为1.869,接近2。且p值为0.2924,大于0.05的显著性水平,说明残差不存在一阶自相关。
举个例子2(拉格朗日乘数检验)
输入:
#拉格朗日乘数法
bgtest(lm04, order = 1)
bgtest(lm04, order = 3)
输出:
我们看到一阶和三阶检验的拉格朗日乘数值均较小,且P值均大于0.05的显著性水平,则不存在一阶和三阶自相关。
误差相关性处理方法
Durbin两步估计法
对于一元回归方程:
如果它的残差项存在一阶自相关:
则我们利用Durbin两步法进行估计:
令a0= b0 (1-ρ), a1= b1, a2= -b1 ρ,则模型变为:
对上式进行OLS估计,就可以得到原模型的估计参数。
举个例子(Durbin两步估计法)
模拟的数据:
n = 15
x0 <- rnorm(n, 2, 0.1)
x01 <- c(55,52,42,32,37,36,57,66,66,62,45,77,78,60,65)
testdf <- data.frame(y = 5 + 8*x0 + x01*0.1,
x1 = x0,
x3 = rnorm(n, 3, 1))
输入1:
#D-W检验
lm01 <- lm(y ~ x1)
summary(lm01)
dwtest(lm01)
输出1:
由回归结果中调整后的R方可知,都小于0了好么,非常差了好么~
由相关性检验结果可知DW值为0.77536,接近0。且p值为0.00385,小于0.05的显著性水平,说明残差存在一阶自相关。
输入2:
#Durbin两步法
yt <- y[-1];yt_1 <- y[1:(n-1)]
xt <- x1[-1];xt_1 <- x1[1:(n-1)]
lm02 <- lm(yt ~ yt_1 + xt + xt_1)
summary(lm02)
dwtest(lm02)
bgtest(lm02, order = 1)
输出2:
回归方程为:
由回归结果中调整后的R方可知,为0.2745,比之前好多了~
由D-W检验结果可知DW值为2.0597,接近2,且p值为0.501,大于0.05的显著性水平,说明新构建模型的残差不存在一阶自相关。由拉格朗日乘数检验可知,P值大于0.05的显著性水平,同样说明残差项不存在一阶自相关。
上一篇: Android开发——Fragment的简单使用总结
下一篇: 阿里云ECS的CPU100%排查