残差自回归模型
来源:互联网 发布:局域网网络协议 编辑:程序博客网 时间:2024/05/16 12:50
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 freedomMultiple R-squared: 0.8076, Adjusted R-squared: 0.8021 F-statistic: 146.9 on 1 and 35 DF, p-value: 4.404e-14
拟合关于延迟变量的自回归模型
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 ‘ ’ 1Residual standard error: 7.936 on 34 degrees of freedomMultiple R-squared: 0.9762, Adjusted R-squared: 0.9755 F-statistic: 1392 on 1 and 34 DF, p-value: < 2.2e-16
两个趋势拟合模型的拟合效果图
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)
趋势拟合效果图
残差自相关检验
一、检验原理
确定性模型拟合好后,要对该模型拟合效果进行检验。
如果残差序列显示出纯随机性的性质,就说明确定性模型拟合的非常好,已经能够充分提取序列中的相关信息,不需要对残差进行二次信息提取,分析结束。
反之,如果残差序列显示显著的自相关性,即说明提取的不够充分,应该对残差序列在次拟合,提取其中残存的相关信息,以提高模型拟合的精度。
二、Durbin-Watson检验
这是在考虑多元自回归的模型的残差独立性时提出的一个自相关检验统计量,我们把它借鉴过来进行时间序列的残差自相关检验。
> library(zoo)> library(lmtest)> dwtest(x.fit1) Durbin-Watson testdata: x.fit1DW = 0.13784, p-value < 2.2e-16alternative hypothesis: true autocorrelation is greater than 0
DW检验结果显示,DW的统计量要小于2,且p值极小,这说明残差序列高度正相关,为了充分提取相关信息,我们要对残差序列进行在次提取。
三.Durbin h检验
在一些场合下容易产生残差序列正自相关性不显著的误判。
使用Durbin h检验代替DW检验统计量成为延迟因变量的场合常用的自相关性检验统计量。
dwtest(x.fit2,order.by=xlag) Durbin-Watson testdata: x.fit2DW = 1.8153, p-value = 0.2295alternative hypothesis: true autocorrelation is greater than 0
对拟合模型而言,因为自变量xlag和因变量x具有自相关关系,所以需要使用Durbin h检验。DW值接近2,不相关。
残差自相关模型拟合
当残差自相关检验显示残差序列高度自相关时,我们需要对残差序列进行二次拟合,进一步提取残差序列中蕴涵中的相关信息,拟合残差自相关模型的步骤和命令与构建ARIMA模型的步骤与命令一样。
绘制差分后序列自相关图和偏自相关图
acf(x.fit1$residual)pacf(x.fit1$residual)
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.17
> #残差自相关模型的显著性检验> 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.5582
通过了检验
- 残差自回归模型
- 基于自回归模型(AR)的自适应阈值的残差比异常检测
- ARIMA差分自回归模型python代码
- 自回归模型(AR)、移动平均模型(MA)、自回归移动平均模型(ARMA)以及差分自回归移动平均模型(ARIMA)辨析
- 自回归纹理模型
- AutoRegressive Integrated Moving Average(差分自回归移动平均模型)
- 自回归模型(AR Model)
- 时间序列之AR(自回归模型)
- [转]一阶自回归模型和二阶自回归模型
- 回归分析绘图,预测,残差分析
- 【回归分析】[6]--残差分析
- 自回归AR模型、移动平均MA模型与自回归移动平均ARMA模型的比较分析
- 金融时间序列分析:4. AR自回归模型
- 向量自回归与结构向量误差修正模型
- 时间序列之差分自回归移动平均法(ARIMA)
- 回归模型-逻辑回归
- java回归中的残差平方和的均值
- SPSS多元线性回归残差分析的基本方法
- Java:根据ip获取对应的省市区
- pipe
- 快速Phpstorm 断点调试ThinkPHP项目 PHPstudy
- 有返回值的登陆系统
- Cutting Sticks UVA
- 残差自回归模型
- SVN的安装和使用,与Mysql的安装
- jsp——动作标签
- alloc、init你弄懂50%了吗?
- [转]陀螺仪相关知识大汇集
- 自然语言内容
- 面试题44:扑克牌的顺子
- android中的spannable的使用
- linux 进程和服务管