4477 5009 5398 5751 6292 6767 7636 8262 8791 9952 10671 10852 10982 11302
11415 11819 13470 13650 14857 15509 15577 14841 15215 15438 15734 15805 16395
ARIMA模型的提出使人们对非平稳序列拟合精度大大提高,但和传统的确定性因素分解方法相比较,ARIMA模型仍然有一些缺憾,它使用养分方法提取确定性信息,差分方法的优点是对确定信息的提取比较充分,缺点是很难对模型进行直观解释。所以当序列具有非常显著的确定性趋势或者季节效应时,人们会怀念确定性因素分解方法对各种确定性效应的解释,但又因为它对残差信息的浪费而不敢轻易使用。
为了解决这个问题,人们构造了残差自回归(auto-regressive)模型。
模型结构
1.残差自回归模型的构造思想是首先通过确定性因素分解方法提取序列中主要的确定性信息。
包括趋势效应拟合与季节效应拟合。
2.考虑到因素分解方法对确定性信息的提取可能不充分,因而需要进一步检验残差序列的自相关性。
3.如果检验结果显示残差序列自相关性不显著,说明回归模型对信息的提取比较充分,可以停止分析。
4.如果检验结果显示残差序列自相关性显著,说明回归模型对信息的提取不充分,可以考虑对残差序列拟合自回归模型。
这样的模型叫做残差自回归模型。
实践中两种方式(一)(二):
(一)
(1)自变量为时间t的幂函数
(2)自变量为历史观察值
(二)
(1)给定季节指数
(2)建立季节自回归模型
残差自回归模型举例
使用残差自回归模型分析1952-1988年中国农业实际国民收入指数序列。
该序列有显著的线性递增趋势,但没有季节效应,所以考虑建立(一 )类模型。
#拟合关于时间t的线性回归模型d<-read.table("D:/R-TT/book4/4R/data/file17.csv",sep=",",header = T)
x<-ts(d$index,start = 1952)
t<-c(1:37)
x.fit1<-lm(x~t)
summary(x.fit1)
Call:
lm(formula = x ~ t)
Residuals:
Min 1Q Median 3Q Max
-28.71 -20.48 -10.81 26.42 46.17 Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 66.1491 8.1197 8.147 1.35e-09 ***
t 4.5158 0.3726 12.121 4.40e-14 ***---Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1Residual standard error: 24.2 on 35 degrees of freedom
Multiple R-squared: 0.8076, Adjusted R-squared: 0.8021 F-statistic: 146.9 on 1 and 35 DF, p-value: 4.404e-141234567891011121314151617181920212223
拟合关于延迟变量的自回归模型
xlag<-x[2:37]
x2<-x[1:36]
x.fit2<-lm(x2~xlag)
summary(x.fit2)
Call:
lm(formula = x2 ~ xlag)
Residuals: Min 1Q Median 3Q Max -15.764 -5.066 -0.703 5.539 20.424
Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 7.39226 4.00444 1.846 0.0736 .
xlag 0.91932 0.02464 37.309 <2e-16 ***
---Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 7.936 on 34 degrees of freedom
Multiple R-squared: 0.9762, Adjusted R-squared: 0.9755
F-statistic: 1392 on 1 and 34 DF, p-value: < 2.2e-16123456789101112131415161718192021
两个趋势拟合模型的拟合效果图
fit1<-ts(x.fit1$fitted.value,start = 1952)fit2<-ts(x.fit2$fitted.value,start = 1952)plot(x,type = "p",pch=8)lines(fit1,col=2)lines(fit2,col=4)123456
残差自相关检验
一、检验原理
确定性模型拟合好后,要对该模型拟合效果进行检验。
如果残差序列显示出纯随机性的性质,就说明确定性模型拟合的非常好,已经能够充分提取序列中的相关信息,不需要对残差进行二次信息提取,分析结束。
反之,如果残差序列显示显著的自相关性,即说明提取的不够充分,应该对残差序列在次拟合,提取其中残存的相关信息,以提高模型拟合的精度。
二、Durbin-Watson检验
这是在考虑多元自回归的模型的残差独立性时提出的一个自相关检验统计量,我们把它借鉴过来进行时间序列的残差自相关检验。
> library(zoo)
> library(lmtest)
> dwtest(x.fit1)
Durbin-Watson test
data: x.fit1
DW = 0.13784, p-value < 2.2e-16alternative hypothesis: true autocorrelation is greater than 0123456789
DW检验结果显示,DW的统计量要小于2,且p值极小,这说明残差序列高度正相关,为了充分提取相关信息,我们要对残差序列进行在次提取。
三.Durbin h检验
在一些场合下容易产生残差序列正自相关性不显著的误判。
使用Durbin h检验代替DW检验统计量成为延迟因变量的场合常用的自相关性检验统计量。
dwtest(x.fit2,order.by=xlag)
Durbin-Watson testdata: x.fit2
DW = 1.8153, p-value = 0.2295alternative hypothesis: true autocorrelation is greater than 01234567
对拟合模型而言,因为自变量xlag和因变量x具有自相关关系,所以需要使用Durbin h检验。DW值接近2,不相关。
残差自相关模型拟合
当残差自相关检验显示残差序列高度自相关时,我们需要对残差序列进行二次拟合,进一步提取残差序列中蕴涵中的相关信息,拟合残差自相关模型的步骤和命令与构建ARIMA模型的步骤与命令一样。
绘制差分后序列自相关图和偏自相关图
acf(x.fit1$residual)
pacf(x.fit1$residual)12
ACF
PACF
自相关系数拖尾,偏自相关系数2阶截尾。所以对残差序列拟合AR(2)模型。
#拟合AR(2)模型r.fit<-arima(x.fit1$residual,order=c(2,0,0),include.mean = F)
r.fitCall:arima(x = x.fit1$residual, order = c(2, 0, 0), include.mean = F)Coefficients:
ar1 ar2 1.4995 -0.6028s.e. 0.1274 0.1356sigma^2 estimated as 50.6: log likelihood = -126.59, aic = 259.17123456789101112
> #残差自相关模型的显著性检验> for(i in 1:2) print(Box.test(r.fit$residual,lag=6*i))
Box-Pierce testdata: r.fit$residualX-squared = 3.1979, df = 6, p-value = 0.7836
Box-Pierce testdata: r.fit$residualX-squared = 10.661, df = 12, p-value = 0.55821234567891011121314
通过了检验
不过我用的是SAS,matlab没用过。现在主要问题是,我程序都出来了,为什么结果老是出不来。
追答额 那这可能是程序的问题吧 SAS不太了解..
你需要的话 我可以帮你用matlab做一下?
额!那太好了,帮帮忙吧,我想用上面的数据做残差自回归(auto-regressive)预测,大概预测未来5个值吧,不知道matlab可不可以做。