残差自回归模型的R实现
时间序列经常将非平稳时间序列分解为趋势部分,季节因素部分和随机部分,可以表示为:
这里的Tt为长期趋势拟合,St为季节效应拟合。
残差自回归是回归模型与ARMA模型的组合模型,由于回归模型对时间序列进行拟合时,序列中包含的信息可能不太充分,在拟合回归模型之后对其残差序列进行自相关性检验,若残差序列具有明显的自相关性,那么就需要对残差序列进行拟合。
1.利用时间序列拟合回归模型
对时间序列的趋势效应的拟合有两种形式:
这两种形式的残差自回归模型可以分别表示为:
以时间为自变量的残差自回归模型:
at是表示为回归模型的残差做完ARMA模型之后的残差,一般是白噪声序列。
以历史观察值为自变量的残差自回归模型:
2.建模步骤
(1)判别时间序列平稳性,利用时间序列时序图,自相关,偏自相关图或者单位根检验来判别。
(2)利用时间序列来拟合回归模型(包括以时间T为自变量的回归模型和以历史观察值为自变量的回归模型)
(3)对上述回归模型的残差进行自相关性检验,若其残差表现出明显的自相关性,则进行残差的ARMA模型的拟合,否则,不需要拟合。
(4)计算模型的各项参数
(5)对整个模型的最终残差进行白噪声检验
3.建模
同样的以1952年至1988年中国农业实际国民收入指数序列为例建模。
(1)画出其时序图,并对该序列进行单位根检验。
library(tseries)
library(forecast)
library(zoo)
x=read.table("C:/Users/MrDavid/data_TS/A1.17.csv",sep=",",header=T)
x.fit=ts(x$index,start=1952)
plot(x.fit,col=4,pch=8,type="o",lwd=2)
adf.test(x.fit)
单位根检验结果为:
可以看出该序列明显为非平稳序列
(2)建立以时间t为自变量的残差自回归模型
得到的结果如下图所示:
那么此时拟合的回归模型可以表示为:
t=c(1:37)
x.fit1=lm(x.fit~t)
summary(x.fit1)
对此回归模型的残差进行自相关性检验,一般采用DW检验:
library(lmtest)
dwtest(x.fit1)
从这里可以看出该残差序列有着明显的自相关性,需要对其残差序列进行拟合。
画出残差序列自相关,偏自相关图
x.fit2=x.fit1$residual
acf(x.fit2,col=4,lwd=2)
pacf(x.fit2,col=4,lwd=2)
对模型进行定阶:
auto.arima(x.fit2)
此时残差序列的拟合模型,就出来了,我们也可以这样:
r.fit=arima(x.fit2,order=c(2,0,0))
r.fit
那么以时间t为自变量的残差自回归模型可以表示为:
对该模型的残差进行白噪声检验:
for(i in 1:3) print(Box.test(r.fit$residual,type="Ljung-Box",lag=6*i))
说明以时间t为自变量的模型拟合成功。
(3)建立以历史观察值为自变量的残差自回归模型
由(2)已经知道了该序列非平稳,所以我们直接进行回归拟合就可以了。
xlag=x.fit[2:37]
x2=x.fit[1:36]
x.fit3=lm(x2~xlag)
summary(x.fit3)
拟合的模型为:
对该回归模型进行Durbin h检验
从上图可以看出,该回归模型的残差没有明显的自相关性,所以不需要对其进行再次拟合,所以该模型是:
残差自回归模型的R实现相关推荐
- 基于时间序列的残差自回归模型
实验数据来源于课本课后习题: 1.首先加载所需的数据包,并画出时序图: 时序图可以看出数据呈现上升趋势. 2.所以我们先对趋势进行拟合,首先通过时间 t 作为解释变量对趋势进行拟合, 其次可以利用 x ...
- 【转】时间序列分析——基于R,王燕
<时间序列分析--基于R>王燕,读书笔记 笔记: 一.检验: 1.平稳性检验: 图检验方法: 时序图检验:该序列有明显的趋势性或周期性,则不是平稳序列 自相关图检验:(acf函数)平稳序列 ...
- R语言用LOESS(局部加权回归)季节趋势分解(STL)进行时间序列异常检测
全文下载链接:http://tecdat.cn/?p=22632 这篇文章描述了一种对涉及季节性和趋势成分的时间序列的异常点进行建模的方法. 相关视频 我们将对一种叫做STL的算法进行研究,STL是 ...
- R语言时间序列函数整理[不断更新]
来自:http://www.xiaowanxue.com/up_files/2012919161514.html [资料] 文档1:<R与金融时间序列分析常见问题集> [包] librar ...
- R语言时间序列函数整理
[包] library(zoo) #时间格式预处理 library(xts) #同上 library(timeSeires) #同上 librar ...
- r语言 python 股票_R语言使用ARIMA模型预测股票收益
原文链接:http://tecdat.cn/?p=2831 "预测非常困难,特别是关于未来".丹麦物理学家尼尔斯·波尔(Neils Bohr) 很多人都会看到这句名言.预测是这篇博 ...
- 时间序列分析——基于R 王燕 版本 复习整理
目录 1.时间序列分析 时间序列的定义: 两种时间序列的分析方法: (1)描述性时序分析 (2)统计时序分析 2.时间序列的预处理 平稳性检验 纯随机性检验(白噪声检验) 3.平稳时间序列分析 方法性 ...
- R 编程中的 LOOCV(留一法交叉验证)
LOOCV(Leave One Out Cross-Validation)是一种交叉验证方法,其中每个观察被视为验证集,其余(N-1)个观察被视为训练集.在 LOOCV 中,模型的拟合完成并使用一个观 ...
- R语言第七讲 线性回归分析案例续
题目 MASS 库中包含 Boston (波士顿房价)数据集,它记录了波士顿周围 506 个街区的 medv (房价中位数).我们将设法用 13 个预测变量如 rm (每栋住宅的平 ...
- 基于R的金融收益的分析和预测
研究目的:根据上证综合指数历史收益率数据(2016.1.5-2018.4.4),对其收益进行分析和预测. **分析思路:**读取数据-平稳性检验-白噪声检验(代码同上,此处不再赘述)–ARIMA模型拟 ...
最新文章
- 《ASP.NET MVC企业实战》(二) MVC开发前奏
- 【PAT乙级】1027 打印沙漏 (20 分)
- 第十二届蓝桥杯JavaB组省赛H题 杨辉三角形
- python为mysql设置id自增长_postgresql如何设置id自增长
- 飞机游戏项目完整代码(详解JAVA300集)
- MySQL 计算两个时间的差值
- jquery级试题_腾讯2020前端面试题含答案解析
- 云原生和ServiceMesh主要组件--理解K8s/Istio/Envoy
- Eclipse配置Tomcat并运行
- js判断当前的访问是手机还是电脑
- 转载:扒一扒Profiler中这几个“占坑鬼”
- 插入耳机不识别只能外放,音频设备错误代码0xc00d36fa
- 关于求职及面试的一些小技巧
- 用python绘制家乡汕头的地标建筑
- d盘格式化后怎么恢复
- 胖哈勃杯第十三届CUIT校赛web300短域名工具wp及出题心得
- SP8266搭建简易web
- Ogre3D 1.8.1 Android移植
- PythonGUI 使用Tkinter写一个简单时间间隔计算器
- 离线办公解决方案,保护机密文件安全