arima 公式_时间序列预测之--ARIMA模型
什么是 ARIMA模型
ARIMA模型的全称叫做自回归移动平均模型,全称是(ARIMA, Autoregressive Integrated Moving Average Model)。也记作ARIMA(p,d,q),是统计模型(statistic model)中最常见的一种用来进行时间序列 预测的模型。
1. ARIMA的优缺点
优点: 模型十分简单,只需要内生变量而不需要借助其他外生变量。
缺点:
1.要求时序数据是稳定的(stationary),或者是通过差分化(differencing)后是稳定的。
2.本质上只能捕捉线性关系,而不能捕捉非线性关系。
注意,采用ARIMA模型预测时序数据,必须是稳定的,如果不稳定的数据,是无法捕捉到规律的。比如股票数据用ARIMA无法预测的原因就是股票数据是非稳定的,常常受政策和新闻的影响而波动。
2. 判断是时序数据是稳定的方法。
严谨的定义: 一个时间序列的随机变量是稳定的,当且仅当它的所有统计特征都是独立于时间的(是关于时间的常量)。
判断的方法:
稳定的数据是没有趋势(trend),没有周期性(seasonality)的; 即它的均值,在时间轴上拥有常量的振幅,并且它的方差,在时间轴上是趋于同一个稳定的值的。
可以使用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 ,\ y_t = Y_t \\[2ex]
if \ d=1 ,\ y_t = Y_t-Y_{t-1} \\[2ex]
if \ d=2 ,\ y_t = (Y_t-Y_{t-1}) -(Y_{t-1}-Y_{t-2}) \\
=Y_t-2Y_{t-1}+Y_{t-2}\]
ARIMA的预测模型可以表示为:
Y的预测值 = 常量c and/or 一个或多个最近时间的Y的加权和 and/or 一个或多个最近时间的预测误差。
假设p,q,d已知,
ARIMA用数学形式表示为:
\[\widehat{y_t} = \mu + \phi_1*y_{t-1} + ...+ \phi_p*y_{t-p} + \theta_1*e_{t-1} +...+\theta_q*e_{t-q}
\]
\[其中, \phi表示AR的系数,\theta表示MA的系数
\]
4.ARIMA模型的几个特例
1.ARIMA(0,1,0) = random walk:
当d=1,p和q为0时,叫做random walk,如图所示,每一个时刻的位置,只与上一时刻的位置有关。
预测公式如下:
\[\widehat Y_t = \mu + Y_{t-1}
\]
2. ARIMA(1,0,0) = first-order autoregressive model:
p=1, d=0,q=0。说明时序数据是稳定的和自相关的。一个时刻的Y值只与上一个时刻的Y值有关。
\[\widehat Y_t = \mu + \phi_1*Y_{t-1}. \\ where,\ \phi \in [-1,1] , 是一个斜率系数
\]
3. ARIMA(1,1,0) = differenced first-order autoregressive model:
p=1,d=1,q=0. 说明时序数据在一阶差分化之后是稳定的和自回归的。即一个时刻的差分(y)只与上一个时刻的差分有关。
\[ \widehat y_t = \mu +\phi_1*y_{t-1} \\
结合一阶差分的定义,也可以表示为:\widehat Y_t-Y_{t-1} = \mu+ \phi_1 * (Y_{t-1} - Y_{t-2})\\
或者 \widehat Y_t = \mu +Y_{t-1} + \phi_1 * (Y_{t-1} - Y_{t-2}) \]
4. ARIMA(0,1,1) = simple exponential smoothing with growth.
p=0, d=1 ,q=1.说明数据在一阶差分后市稳定的和移动平均的。即一个时刻的估计值的差分与上一个时刻的预测误差有关。
\[ \widehat y_t = \mu + \alpha_1*e_{t-1} \\ 注意q=1的差分y_t与p=1的差分y_t的是不一样的 \\
其中,\widehat y_t = \widehat Y_t-\widehat Y_{t-1} , \ e_{t-1}={Y_{t-1} - \widehat Y_{t-1}} , 设\theta_1 = 1- \alpha_1 \\
则也可以写成: \widehat Y_t = \mu + \widehat Y_{t-1} + \alpha_1 ({Y_{t-1} - \widehat Y_{t-1}}) \\
= \mu +Y_{t-1} - \theta_1*e_{t-1}\]
5. ARIMA(2,1,2)
在通过上面的例子,可以很轻松的写出它的预测模型:
\[ \widehat y_t = \mu + \phi_1 * y_{t-1} + \phi_2 * y_{t-2} - \theta_1 * e_{t-1} - \theta_2* e_{t-2} \\
也可以写成:
\widehat Y_t = \mu + \phi_1 * (Y_{t-1} - Y_{t-2}) + \phi_2 * (Y_{t-2} - Y_{t-3}) - \theta_1 *(Y_{t-1} - \widehat Y_{t-1}) -\theta_2 *(Y_{t-2} - \widehat Y_{t-2}) \]
6. ARIMA(2,2,2)
\[ \widehat y_t = \mu + \phi_1 * y_{t-1} + \phi_2 * y_{t-2} - \theta_1 * e_{t-1} - \theta_2* e_{t-2}
\\ \widehat Y_t = \mu + \phi_1 * (Y_{t-1}-2Y_{t-2} + Y_{t-3}) + \phi_2 * (Y_{t-2}-2Y_{t-3} + Y_{t-4}) - \theta_1 *(Y_{t-1} - \widehat Y_{t-1})- \theta_2* (Y_{t-2} - \widehat Y_{t-2})
\]
7. ARIMA建模基本步骤
获取被观测系统时间序列数据;
对数据绘图,观测是否为平稳时间序列;对于非平稳时间序列要先进行d阶差分运算,化为平稳时间序列;
经过第二步处理,已经得到平稳时间序列。要对平稳时间序列分别求得其自相关系数ACF 和偏自相关系数PACF,通过对自相关图和偏自相关图的分析,得到最佳的阶层 p 和阶数 q
由以上得到的d、q、p,得到ARIMA模型。然后开始对得到的模型进行模型检验。
具体例子会在另一篇文章中给出。
arima 公式_时间序列预测之--ARIMA模型相关推荐
- arima 公式_时间序列 ARIMA 模型 (三)
先看下图: 这是1986年到2006年的原油月度价格.可见在2001年之后,原油价格有一个显著的攀爬,这时再去假定均值是一个定值(常数)就不太合理了,也就是说,第二讲的平稳模型在这种情况下就太适用了. ...
- 使用ARIMA算法进行时间序列预测。
本文以行健宏扬中国为例,提取数据,使用ARIMA算法进行时间序列预测. 爬取数据 # 抓取行健宏扬中国基金 from bs4 import BeautifulSoup import requests ...
- 【深度学习 项目实战】Keras深度学习多变量时间序列预测的LSTM模型
无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家.教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家.点这里可以跳转到教程.人工智能教程 本篇文章将介绍基于 ...
- 时间序列预测之--ARIMA模型
什么是 ARIMA模型 ARIMA模型的全称叫做自回归移动平均模型,全称是(ARIMA, Autoregressive Integrated Moving Average Model).也记作ARIM ...
- arima基本原理_时间序列 :ARIMA模型-原理
时间序列是在时间点上形成的数值序列,时间序列预测是通过观察历史数据预测未来的值.ARIMA模型(Autoregressive Integrated Moving Average model)是时间序列 ...
- 时间序列预测-传统统计学模型ARIMA
ARIMA单变量预测股价DEMO 时间序列介绍: 统计学模型-ARIMA介绍 ARIMA 参数选择说明 源代码解析 参考资料 时间序列介绍: 时间序列(TIME-SERISE)充斥着我们生活的空间,在 ...
- arima 数据预处理_数据预测算法-ARIMA预测
简介 ARIMA: AutoRegressive Integrated Moving Average ARIMA是两个算法的结合:AR和MA.其公式如下: 是白噪声,均值为0, C是常数. ARIMA ...
- 时间序列模型预测_时间序列预测,使用facebook先知模型预测股价
时间序列模型预测 1.简介 (1. Introduction) 1.1. 时间序列和预测模型 (1.1. Time-series & forecasting models) Tradition ...
- 序列每天从1开始_时间序列预测一
什么是时间序列: 时间序列可以看作是普通的二维的无序的特征矩阵向时间空间的拓展,相对来说多了仅仅一个维度但也是非常重要的时间维度: 时间序列是按时间顺序进行的一系列观察,通常包括了连续性时间序列数据和 ...
最新文章
- 【EventBus】EventBus 源码解析 ( 注册订阅者总结 | EventBus 注册订阅者流程梳理 )
- 如何为云原生应用带来稳定高效的部署能力?
- python matplotlab.pyplot.scatter() 函数的用法
- VS2013动态库文件的创建及其使用详解
- Chromium Embedded Framework中文文档 (如何链接不同的运行时)
- ElasticSearch(二)索引管理
- python打卡摄像头黑屏_500行Python代码打造刷脸考勤系统 !
- eclipse中tomcat启动不了_Eclipse怎样与Tomcat集成
- 【Linux网络编程学习】I/O多路复用——epoll
- ulimit限制 新系统_Linux查看及修改系统的资源限制命令ulimit
- linux dd入门,Linux基础知识:Linux中DD命令详解
- Vigenère密码(洛谷P1079题题解,Java语言描述)
- 给公司省下了300万美元,只因选对了BI工具
- 区块链和数据科学:如果同时应用这两种技术,将会实现什么?
- 机械表小案例之transform的应用
- 电源大师课笔记 1.2
- 1、项目搭建、本地视频列表展示
- php图片反色特效,PHP实现对图片的反色处理功能【测试可用】
- ipad协议最新替代
- 区块链亲民应用场景大猜想 第一次或将献给超大文件传输
热门文章
- redis@redis
- 陈广 C#学习笔记(数组2-3)
- 基于Android实现日语学习app设计与实现演示【附项目源码+论文说明】
- 沉降预测算法-星野法
- 软件工程师周兆熊给IT学子的倾情奉献
- Openstack Nova Failed to allocate network(s)
- 分享wordpress主题GitGhost开源博客主题支持全站ajax想做博客和新闻的小伙伴可以看看主题很美!
- [英语单词] inside-out
- Python3实现批量重命名文件(获取文件名、后缀名)
- 算法修炼之筑基篇——筑基一层初期(解决01背包问题)