转自:https://blog.csdn.net/HHXUN/article/details/79858672

ARIMA模型的全称叫做自回归移动平均模型,全称是(ARIMA, Autoregressive Integrated Moving Average Model)。也记作ARIMA(p,d,q),是统计模型(statistic model)中最常见的一种用来进行时间序列 预测的模型。

1. ARIMA的优缺点

优点: 模型十分简单,只需要内生变量而不需要借助其他外生变量。

缺点:

1.要求时序数据是稳定的(stationary),或者是通过差分化(differencing)后是稳定的。

2.本质上只能捕捉线性关系,而不能捕捉非线性关系。

注意,采用ARIMA模型预测时序数据,必须是稳定的,如果不稳定的数据,是无法捕捉到规律的。比如股票数据用ARIMA无法预测的原因就是股票数据是非稳定的,常常受政策和新闻的影响而波动。

2. 判断是时序数据是稳定的方法。

严谨的定义: 一个时间序列的随机变量是稳定的,当且仅当它的所有统计特征都是独立于时间的(是关于时间的常量)。

判断的方法:

  1. 稳定的数据是没有趋势(trend),没有周期性(seasonality)的; 即它的均值,在时间轴上拥有常量的振幅,并且它的方差,在时间轴上是趋于同一个稳定的值的。
  2. 可以使用Dickey-Fuller Test进行假设检验。(另起文章介绍)

3. ARIMA的参数与数学形式

ARIMA模型有三个参数:p,d,q。

  • p--代表预测模型中采用的时序数据本身的滞后数(lags) ,也叫做AR/Auto-Regressive项
  • d--代表时序数据需要进行几阶差分化,才是稳定的,也叫Integrated项。
  • q--代表预测模型中采用的预测误差的滞后数(lags),也叫做MA/Moving Average项

先解释一下差分: 假设y表示t时刻的Y的差分。

if d=0, yt=Ytif d=1, yt=Yt−Yt−1if d=2, yt=(Yt−Yt−1)−(Yt−1−Yt−2)=Yt−2Yt−1+Yt−2if d=0, yt=Ytif d=1, yt=Yt−Yt−1if d=2, yt=(Yt−Yt−1)−(Yt−1−Yt−2)=Yt−2Yt−1+Yt−2

ARIMA的预测模型可以表示为:

Y的预测值 = 常量c and/or 一个或多个最近时间的Y的加权和 and/or 一个或多个最近时间的预测误差。

假设p,q,d已知,

ARIMA用数学形式表示为:

ytˆ=μ+ϕ1∗yt−1+...+ϕp∗yt−p+θ1∗et−1+...+θq∗et−qyt^=μ+ϕ1∗yt−1+...+ϕp∗yt−p+θ1∗et−1+...+θq∗et−q

其中,ϕ表示AR的系数,θ表示MA的系数其中,ϕ表示AR的系数,θ表示MA的系数

4.ARIMA模型的几个特例

1.ARIMA(0,1,0) = random walk:

当d=1,p和q为0时,叫做random walk,如图所示,每一个时刻的位置,只与上一时刻的位置有关。

预测公式如下:

Yˆt=μ+Yt−1Y^t=μ+Yt−1

2. ARIMA(1,0,0) = first-order autoregressive model:

p=1, d=0,q=0。说明时序数据是稳定的和自相关的。一个时刻的Y值只与上一个时刻的Y值有关。

Yˆt=μ+ϕ1∗Yt−1.where, ϕ∈[−1,1],是一个斜率系数Y^t=μ+ϕ1∗Yt−1.where, ϕ∈[−1,1],是一个斜率系数

3. ARIMA(1,1,0) = differenced first-order autoregressive model:

p=1,d=1,q=0. 说明时序数据在一阶差分化之后是稳定的和自回归的。即一个时刻的差分(y)只与上一个时刻的差分有关。

yˆt=μ+ϕ1∗yt−1结合一阶差分的定义,也可以表示为:Yˆt−Yt−1=μ+ϕ1∗(Yt−1−Yt−2)或者Yˆt=μ+Yt−1+ϕ1∗(Yt−1−Yt−2)y^t=μ+ϕ1∗yt−1结合一阶差分的定义,也可以表示为:Y^t−Yt−1=μ+ϕ1∗(Yt−1−Yt−2)或者Y^t=μ+Yt−1+ϕ1∗(Yt−1−Yt−2)

4. ARIMA(0,1,1) = simple exponential smoothing with growth.

p=0, d=1 ,q=1.说明数据在一阶差分后市稳定的和移动平均的。即一个时刻的估计值的差分与上一个时刻的预测误差有关。

yˆt=μ+α1∗et−1注意q=1的差分yt与p=1的差分yt的是不一样的其中,yˆt=Yˆt−Yˆt−1, et−1=Yt−1−Yˆt−1,设θ1=1−α1则也可以写成:Yˆt=μ+Yˆt−1+α1(Yt−1−Yˆt−1)=μ+Yt−1−θ1∗et−1y^t=μ+α1∗et−1注意q=1的差分yt与p=1的差分yt的是不一样的其中,y^t=Y^t−Y^t−1, et−1=Yt−1−Y^t−1,设θ1=1−α1则也可以写成:Y^t=μ+Y^t−1+α1(Yt−1−Y^t−1)=μ+Yt−1−θ1∗et−1

5. ARIMA(2,1,2)

在通过上面的例子,可以很轻松的写出它的预测模型:

yˆt=μ+ϕ1∗yt−1+ϕ2∗yt−2−θ1∗et−1−θ2∗et−2也可以写成:Yˆt=μ+ϕ1∗(Yt−1−Yt−2)+ϕ2∗(Yt−2−Yt−3)−θ1∗(Yt−1−Yˆt−1)−θ2∗(Yt−2−Yˆt−2)y^t=μ+ϕ1∗yt−1+ϕ2∗yt−2−θ1∗et−1−θ2∗et−2也可以写成:Y^t=μ+ϕ1∗(Yt−1−Yt−2)+ϕ2∗(Yt−2−Yt−3)−θ1∗(Yt−1−Y^t−1)−θ2∗(Yt−2−Y^t−2)

6. ARIMA(2,2,2)

yˆt=μ+ϕ1∗yt−1+ϕ2∗yt−2−θ1∗et−1−θ2∗et−2Yˆt=μ+ϕ1∗(Yt−1−2Yt−2+Yt−3)+ϕ2∗(Yt−2−2Yt−3+Yt−4)−θ1∗(Yt−1−Yˆt−1)−θ2∗(Yt−2−Yˆt−2)y^t=μ+ϕ1∗yt−1+ϕ2∗yt−2−θ1∗et−1−θ2∗et−2Y^t=μ+ϕ1∗(Yt−1−2Yt−2+Yt−3)+ϕ2∗(Yt−2−2Yt−3+Yt−4)−θ1∗(Yt−1−Y^t−1)−θ2∗(Yt−2−Y^t−2)

7. ARIMA建模基本步骤

  1. 获取被观测系统时间序列数据;
  2. 对数据绘图,观测是否为平稳时间序列;对于非平稳时间序列要先进行d阶差分运算,化为平稳时间序列;
  3. 经过第二步处理,已经得到平稳时间序列。要对平稳时间序列分别求得其自相关系数ACF 和偏自相关系数PACF,通过对自相关图和偏自相关图的分析,得到最佳的阶层 p 和阶数 q
  4. 由以上得到的d、q、p,得到ARIMA模型。然后开始对得到的模型进行模型检验。

什么是 ARIMA模型相关推荐

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

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

  2. 时间序列(四)ARIMA模型与差分

    ARIMA模型 平稳性: 平稳性就是要求经由样本时间序列所得到的拟合曲线 在未来的一段期间内仍能顺着现有的形态"惯性"地延续下去 平稳性要求序列的均值和方差不发生明显变化 严平稳与 ...

  3. 时间序列预测---差分自回归移动平均模型(ARIMA模型)

    ARIMA模型简介 1. 数据平稳性 了解ARIMA模型就要先了解数据的平稳性,样本数据获得的时间序列,在未来一段时间沿着一个"趋势"发展下去,只有具有平稳性的数据才可以做预测 平 ...

  4. python时间序列分析航空旅人_时间序列分析-ARIMA模型(python)

    时间序列概念:在生产和科学研究中,对某一个或者一组变量 进行观察测量,将在一系列时刻 所得到的离散数字组成的序列集合,称之为时间序列.时间序列分析是根据系统观察得到的时间序列数据,通过曲线拟合和参数估 ...

  5. ARIMA模型实例讲解——网络流量预测可以使用啊

    ARIMA模型实例讲解:时间序列预测需要多少历史数据? from:https://www.leiphone.com/news/201704/6zgOPEjmlvMpfvaB.html   雷锋网按:本 ...

  6. python画不出来图是什么原因-完美解决ARIMA模型中plot_acf画不出图的问题

    问题描述:在画时间序列ACF时,调用 from statsmodels.graphics.tsaplots import plot_acf, plot_pacf plot_acf(data, lags ...

  7. arima模型 p q d 确定_基于ARIMA预测股指期货价格走势

    " 常用的时间序列模型有四种:自回归模型 AR(p).移动平均模型 MA(q).自回归移动平均模型 ARMA(p,q).自回归差分移动平均模型 ARIMA(p,d,q), 可以说前三种都是 ...

  8. ARIMA模型详细讲解

    近期在学习ARIMA模型,下面博主讲的比较精细很受用,感觉看完之后收获大大嘀. https://www.jianshu.com/p/305c4961ee06 转载于:https://www.cnblo ...

  9. arima模型 p q d 确定_时间序列分析第07讲(ARIMA模型,季节时间序列模型,均值的估计)...

    3.3 广义 ARMA 模型和 ARIMA 模型介绍 一.广义 ARMA 模型 (1)定义 我们把 ARMA 模型中关于多项式 A(z),B(z) 的最小相位条件去掉(即允许有单位圆内的根),其余定义 ...

  10. 理论加实践,终于把时间序列预测ARIMA模型讲明白了

    上篇我们一起学习了一些关于时间序列预测的知识.而本文将通过一段时间内电力负荷波动的数据集来实战演示完整的ARIMA模型的建模及参数选择过程,其中包括数据准备.随机性.稳定性检验.本文旨在实践中学习,在 ...

最新文章

  1. rdp协议打开 windows_RDPY - Twisted Python 实现的RDP协议(Windows 远程桌面)
  2. 为什么你应该关心领域模型?
  3. ORACLE性能优化救生指南_21章 重做和归档的优化
  4. leetcode 321. 拼接最大数(单调栈)
  5. UITableViewCell在非Nib及Cell重用下设置CellStyle
  6. 一把王者的时间,我就学会了Nginx
  7. mvc中的mvc分别指什么_什么是MVC,它像三明治店吗?
  8. 均方根误差不超过_快速平方根倒数算法
  9. 西门子300硬件升级包下载_实例讲解博途编程实现S7300与西门子触摸屏通讯
  10. VMware Workstation pro无法在Windows上运行的解决方法
  11. 时光倒流我这么学java
  12. php.ini gd_php开启GD库实现方法
  13. Unity 实现简单的人物对话系统
  14. 儿研所 计算机训练,金博智慧:注意缺陷、多动障碍儿童计算机认知训练(工作记忆训练)研究...
  15. IOS把图片做成圆形效果
  16. 线行代数的本质-通俗易懂的讲解
  17. 西南石油大学天空教室_学府之旅 | 西南石油大学
  18. C# 扫描枪扫描条形码与二维码
  19. view-ui中select全选实现
  20. labview 控件变透明

热门文章

  1. 1. Hello World!
  2. linux颜色吸取工具,深度商店应用QElectroTech、Krita、深度取色器、深度截图
  3. 项目记录: HEVC单帧码流硬解渲染
  4. 教资初级中学计算机真题,初中信息技术教资面试真题:VB程序设计语言的操作环境...
  5. MATLAB feof和~feof函数用法
  6. 实用主义 | 如何定制化群发你的微信消息
  7. 通往幸福之路之贷款篇
  8. YAPI -- API管理平台
  9. qq登录 适用于 laravel
  10. python画图小猪佩奇动画片全集_用Python画小猪佩奇