时间序列经常将非平稳时间序列分解为趋势部分,季节因素部分和随机部分,可以表示为:

这里的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. 基于时间序列的残差自回归模型

    实验数据来源于课本课后习题: 1.首先加载所需的数据包,并画出时序图: 时序图可以看出数据呈现上升趋势. 2.所以我们先对趋势进行拟合,首先通过时间 t 作为解释变量对趋势进行拟合, 其次可以利用 x ...

  2. 【转】时间序列分析——基于R,王燕

    <时间序列分析--基于R>王燕,读书笔记 笔记: 一.检验: 1.平稳性检验: 图检验方法: 时序图检验:该序列有明显的趋势性或周期性,则不是平稳序列 自相关图检验:(acf函数)平稳序列 ...

  3. R语言用LOESS(局部加权回归)季节趋势分解(STL)进行时间序列异常检测

    全文下载链接:http://tecdat.cn/?p=22632 这篇文章描述了一种对涉及季节性和趋势成分的时间序列的异常点进行建模的方法. 相关视频 我们将对一种叫做STL的算法进行研究,STL是 ...

  4. R语言时间序列函数整理[不断更新]

    来自:http://www.xiaowanxue.com/up_files/2012919161514.html [资料] 文档1:<R与金融时间序列分析常见问题集> [包] librar ...

  5. R语言时间序列函数整理

    [包] library(zoo)            #时间格式预处理 library(xts)            #同上 library(timeSeires)      #同上 librar ...

  6. r语言 python 股票_R语言使用ARIMA模型预测股票收益

    原文链接:http://tecdat.cn/?p=2831 "预测非常困难,特别是关于未来".丹麦物理学家尼尔斯·波尔(Neils Bohr) 很多人都会看到这句名言.预测是这篇博 ...

  7. 时间序列分析——基于R 王燕 版本 复习整理

    目录 1.时间序列分析 时间序列的定义: 两种时间序列的分析方法: (1)描述性时序分析 (2)统计时序分析 2.时间序列的预处理 平稳性检验 纯随机性检验(白噪声检验) 3.平稳时间序列分析 方法性 ...

  8. R 编程中的 LOOCV(留一法交叉验证)

    LOOCV(Leave One Out Cross-Validation)是一种交叉验证方法,其中每个观察被视为验证集,其余(N-1)个观察被视为训练集.在 LOOCV 中,模型的拟合完成并使用一个观 ...

  9. R语言第七讲 线性回归分析案例续

    题目           MASS 库中包含 Boston (波士顿房价)数据集,它记录了波士顿周围 506 个街区的 medv (房价中位数).我们将设法用 13 个预测变量如 rm (每栋住宅的平 ...

  10. 基于R的金融收益的分析和预测

    研究目的:根据上证综合指数历史收益率数据(2016.1.5-2018.4.4),对其收益进行分析和预测. **分析思路:**读取数据-平稳性检验-白噪声检验(代码同上,此处不再赘述)–ARIMA模型拟 ...

最新文章

  1. 《ASP.NET MVC企业实战》(二) MVC开发前奏
  2. 【PAT乙级】1027 打印沙漏 (20 分)
  3. 第十二届蓝桥杯JavaB组省赛H题 杨辉三角形
  4. python为mysql设置id自增长_postgresql如何设置id自增长
  5. 飞机游戏项目完整代码(详解JAVA300集)
  6. MySQL 计算两个时间的差值
  7. jquery级试题_腾讯2020前端面试题含答案解析
  8. 云原生和ServiceMesh主要组件--理解K8s/Istio/Envoy
  9. Eclipse配置Tomcat并运行
  10. js判断当前的访问是手机还是电脑
  11. 转载:扒一扒Profiler中这几个“占坑鬼”
  12. 插入耳机不识别只能外放,音频设备错误代码0xc00d36fa
  13. 关于求职及面试的一些小技巧
  14. 用python绘制家乡汕头的地标建筑
  15. d盘格式化后怎么恢复
  16. 胖哈勃杯第十三届CUIT校赛web300短域名工具wp及出题心得
  17. SP8266搭建简易web
  18. Ogre3D 1.8.1 Android移植
  19. PythonGUI 使用Tkinter写一个简单时间间隔计算器
  20. 离线办公解决方案,保护机密文件安全

热门文章

  1. Vue 之 .eslintrc.js 文件
  2. 三次Hermite插值
  3. MINI2440 TD35 P35触摸屏不能使用? 让我们来把一线触控改四线触控
  4. oracle11g数据库导入导出方法教程
  5. 地址转换函数(点分十进制与网络字节序的二进制)
  6. VS2018 查看类图 安装-属性,快捷键
  7. JS前端生成二维码的几种方式
  8. 福特dms系统服务器,长安福特DMS使用规范.pdf
  9. cad单位_CAD标注样式如何转换公制和英制
  10. 【裴礼文数学分析】例1.1.1