1.模型简介
ARIMA模型,全称差分自回归移动平均模型。可以看作是差分运算和ARMA模型的结合。主要是针对具有线性趋势的非平稳的时间序列,来进行建模预测。
ARIMA模型的形式如下:
Φ(B)∇??? = Θ(?)??
E(??) = 0,???(??) = ?? 2,?(????) = 0,? ≠ ?
E(????) = 0,∀? < ?
式中,Φ(B) = 1 − ?1? − ⋯− φ???,为平稳可逆 ARIMA 模型的自回 归系数多项式;Θ(B) = 1 − ?1? − ⋯− ????,为平稳可逆 ARMA(p,q)模型的移动平滑系数多项式。
2.建模步骤
(1)画出时序图,自相关,偏自相关图,利用这些图形(或者利用单位根检验判别)判断序列的平稳性。
(2)将非平稳的时间序列进行差分运算,一般一个时间序列进行一到两次差分运算,就应该会平稳下来,否则,就可以认为该时间序列不适合用ARIMA模型来进行建模。
(3)对差分后的时间序列进行平稳性检验,以及白噪声序列,有时会出现差分后序列平稳下来,但是差分后的序列为白噪声,那么这时候该时间序列同样不适合ARIMA模型的建模处理。
(4)画出差分后时间序列的时序图,自相关,偏自相关图,来对该ARIMA模型进行定阶。(或者利用最小AIC准则来定阶也可以)
(5)求出模型的各项参数
(6)对模型的残差进行白噪声检验和参数进行显著性检验。
(7)利用模型进行预测。
3.建立模型
(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,lwd=2,type="o")
adf.test(x.fit)

得到时序图:
单位根检验结果为:
发现P值远大于0.05,所以该序列为非平稳时间序列。
(2)进行差分运算,去除时间序列的趋势因素
进行一阶差分

x.dif1=diff(x.fit,difference=1)
plot(x.dif1,col=4,pch=8,lwd=2,type="o")
adf.test(x.dif1)

进行单位根检验:

adf.test(x.dif1)


检验结果显示,一阶差分平稳

对一阶差分后的平稳序列进行白噪声检验

for(i in 1:3) print(Box.test(x.dif1,type="Ljung-Box",lag=6*i))


结果显示,异界差分非白噪声序列
(3)画出自相关图,偏自相关图,然后对模型进行定阶:

acf(x.dif1,lwd=2,col=4)
pacf(x.dif1,lwd=2,col=4)



建立ARIMA(0,1,1)模型

x.fit2=arima(x.fit,order=c(0,1,1))
x.fit2


残差白噪声检验

for(i in 1:3) print(Box.test(x.fit2$residual,lag=6*i))


残差检验通过
对参数的显著性进行检验:

t1=0.7355/0.1545
pt(t1,df=36,lower.tail=F)


参数检验显著
该模型拟合成功

(4)对未来三期值进行预测

x.fore=forecast(x.fit2,h=3)
x.fore

画出预测图

L1=x.fore$fitted-1.96*sqrt(x.fit2$sigma2)
U1=x.fore$fitted+1.96*sqrt(x.fit2$sigma2)
L2=ts(x.fore$lower[,2],start=1952)
U2=ts(x.fore$upper[,2],start=1952)
c1=min(x.fit,L1,L2)
c2=max(x.fit,L2,U2)
plot(x.fit,type="p",pch=8,ylim=c(c1,c2))
lines(x.fore$fitted,col=2,lwd=2)
lines(x.fore$mean,col=2,lwd=2)
lines(L1,col=4,lty=2)
lines(U1,col=4,lty=2)
lines(L2,col=4,lty=2)
lines(U2,col=4,lty=2)

ARIMA模型的R实现相关推荐

  1. arima 数据预处理_时间序列分析|ARIMA模型分步骤解析及R中实践

    你是否想要做时间序列分析,但却不知道代码怎么写? 你是否不清楚时间序列分析各种模型该在什么情况下使用? 本文将针对以上两个问题,带你入门时间序列分析~ 等等! 不止'入门' 读完这篇,你立即就能在R中 ...

  2. R语言时间序列(time series)分析实战:使用ARIMA模型预测时间序列

    R语言时间序列(time series)分析实战:使用ARIMA模型预测时间序列 目录

  3. r语言没有forecast这个函数_R语言学习日记——时间序列分析之ARIMA模型预测

    指数平滑法对于预测来说是非常有帮助的,而且它对时间序列上面连续的值之间相关性没有要求.但是,如果你想使用指数平滑法计算出预测区间,那么预测误差必须是不相关的, 而且必须是服从零均值. 方差不变的正态分 ...

  4. R语言 时间序列arima模型

    基本理论知识    ARMA模型称为自回归移动平均模型,是时间序列里常用的模型之一.ARMA模型是对不含季节变动的平稳序列进行建模.它将序列值表示为过去值和过去扰动项的加权和.模型形式如下: yt=c ...

  5. R语言与数据分析练习:使用ARIMA模型预测网站访问量

    R语言与数据分析练习:使用ARIMA模型预测网站访问量 使用ARIMA模型预测网站访问量 一.实验背景: 随着流量的增大,某网站的数据信息量也在以一定的幅度增长 基于该网站2016年9月~2017年2 ...

  6. R时间序列分析|SP500股指的ARIMA模型预测与残差ARCH效应分析

    R时间序列分析|S&P500股指的ARIMA模型预测与残差ARCH效应分析 前言 一.数据及分析目的 二.数据探索 三.ARIMA模型构建 四.残差分析 五.模型预测 前言 由于R语言对新手并 ...

  7. R语言时间序列分析之ARIMA模型预测

    R语言时间序列分析之ARIMA模型预测 今天学习ARIMA预测时间序列. 指数平滑法对于预测来说是非常有帮助的,而且它对时间序列上面连续的值之间相关性没有要求.但是,如果你想使用指数平滑法计算出预测区 ...

  8. R语言使用ARIMA模型预测股票收益时间序列

    "预测非常困难,特别是关于未来".丹麦物理学家尼尔斯·波尔(Neils Bohr),最近我们被要求撰写关于arima的研究报告,包括一些图形和统计输出. 很多人都会看到这句名言.预 ...

  9. R语言拟合ARIMA模型:使用forecast包中的auto.arima函数自动搜索最佳参数组合、模型阶数(p,d,q)、设置seasonal参数指定在模型中是否包含季节信息

    R语言拟合ARIMA模型:使用forecast包中的auto.arima函数自动搜索最佳参数组合.模型阶数(p,d,q).设置seasonal参数指定在模型中是否包含季节信息 目录

最新文章

  1. 老年痴呆 数字化_设计老年人愉快数字体验的5条原则
  2. 角色与网站地图的结合
  3. 【python】并行化的又一种思路
  4. From Hero to Zero
  5. 使用最新版mysql 8.0.11会出现的一些问题
  6. python引入自己写的文件_python引入自己写的Py文件
  7. IntelliJ IDEA for Mac 在eclipse(MacOS)模式下的快捷键
  8. twisted系列教程七–小插曲,延迟对象
  9. 确定一个整数是否是2的幂
  10. struts2无法调用类静态方法的解决办法
  11. pringMVC上传图片
  12. 分区桌面背景制作方法-EXCEL
  13. matlab中3乘4魔方阵,小代码3 魔方矩阵
  14. JS实现关闭网页广告弹窗特效
  15. matlab fsolve fzero,Matlab中的fzero和fsolve函数
  16. 数字逻辑·逻辑代数【运算、函数】
  17. 毕业两年,工作三年Java程序员的一点点体会与建议
  18. ubuntu cron 定时任务
  19. 位置定位LocationManager
  20. 基于Flink的实时数据消费应用、功能质量保障方法

热门文章

  1. https多少钱?揭秘它的价格真相
  2. 内存被填充为0xcc
  3. 盐城北大青鸟机电基地UI作品
  4. UniApp H5 跨域代理配置并使用(配置manifest.json、vue.config.js)
  5. 计算机网络基础(2)----协议数据单元(PDU)以及一些基本概念的区分
  6. 梯形时间同步--直接规划法
  7. 光引发剂市场分析-发展趋势-主要企业
  8. 港科夜闻|香港科大与微软合作,推出香港首个AI相关工商管理硕士选修课
  9. 常态化警示教育|农发行江西峡江支行组织开展反洗钱专项业务培训
  10. 【领扣leetcode数据库】176.第二高的薪水