Date: 2019-07-07

最近在使用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. 判断是时序数据是稳定的方法。

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

  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项

ARIMA建模基本步骤

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

总结d、p、q这三者的选择,一般而言就算不是非平稳的时间序列数据,经过一阶差分或者二阶差分就可以转换为弱平稳甚至是平稳的时间序列数据;对于p和q的选择一般需要根据ACF和PACF图进行判断,下面举例说明如何根据原始数据得到的ACF和PACF图得到相应的pq值,其分别表示的是,ACF:自相关图和PACF:偏相关图。

图1

图2

直接看图,是拖尾还是截尾。

第一个图,偏自相关和自相关都是2阶截尾,所以PQ都是2,就是ARMA(2,2)。

第二个图, 偏自相关1阶截尾,自相关拖尾,就是ARMA(1,0)。

总结:对时间序列预测问题使用ARIMA虽然是一个不错的算法(任何算法都有任务的适定性:同样的算法在某些任务上效果不错,但在另外某些问题上 的效果不是非常适用。),但其需要训练者去选择不同的pdd值进行最终的预测,不同的参数的选择将会得到不同的预测结果,这在一定程度上对不是很熟悉该算法背景知识的人不够友好。所以可以选择Auto_ARIMA模型自适应训练。

所以尝试利用ARIMA模型进行时间序列预测的任务,可以进一步考虑Auto-ARIMA算法,更为友好。

根据ARIMA的ACF和PACF图得到相应的pq值相关推荐

  1. Python绘制时序图,ACF和PACF图

    在时序分析众多模型中,最为基础也是最为重要的有AR§模型,MA(q)模型,以及两者的结合ARMA(p,q)模型,同时考虑ARMA模型的平稳性,若有一个或多个根落于单位圆上,则此时的ARMA模型称作自回 ...

  2. 怎么判断acf、pacf图

    acf决定q值,pacf决定p值. 拖尾时缓慢下降,截尾是看线段突然下降到标准差之内,且不再反弹,p.q值是看还在标准差之外的最后一个横坐标. 如果acf.pacf都拖尾则无法判断.

  3. Math之ARIMA:基于statsmodels库利用ARIMA算法对太阳黑子年数据(来自美国国家海洋和大气管理局)实现回归预测(ADF检验+LB检验+DW检验+ACF/PACF图)案例

    Math之ARIMA:基于statsmodels库利用ARIMA算法对太阳黑子年数据(来自美国国家海洋和大气管理局)实现回归预测(ADF检验+LB检验+DW检验+ACF/PACF图)案例 目录

  4. Math之ARIMA:基于statsmodels库利用ARIMA算法(ADF检验+差分修正+ACF/PACF图)对上海最高气温实现回归预测案例

    Math之ARIMA:基于statsmodels库利用ARIMA算法(ADF检验+差分修正+ACF/PACF图)对上海最高气温实现回归预测案例 目录 基于statsmodels库利用ARIMA算法对上 ...

  5. 关于ACF以及PACF在时间序列分析中的应用---ARIMA滞后项阶数确定(附代码)

    原理背景 在时间序列建模中,我们常用到的一个模型就是ARIMA,但是在使用该模型时,一个问题就是如何确定AR,MA中的p和q,即滞后项的级数.这时,一般我们会采用ACF(auto-correlatio ...

  6. Python使用matplotlib可视化时间序列自回归ACF图和偏自回归PACF图、ACF图显示了时间序列与其自身滞后的相关性、PACF显示了任何给定的滞后(时间序列)与当前序列的自相关性

    Python使用matplotlib可视化时间序列自回归ACF图和偏自回归PACF图.ACF图显示了时间序列与其自身滞后的相关性.PACF显示了任何给定的滞后(时间序列)与当前序列的自相关性,但消除了 ...

  7. 理解时间序列的ACF与PACF

    时间序列可以被预测,主要基于以下事实:我们可以部分掌握影响该时间序列的因素的变化情况.换句话说,对时间序列进行预测,其实就是利用各种理论和工具,对观察到的时间序列进行"抽丝剥茧", ...

  8. 【时间序列】怎么理解ACF 和PACF

    目录 1 概述 2 截尾与拖尾 3 Auto regressive (AR) process 4 Moving average(MA) Process 5 总结 1 概述 ACF 是一个完整的自相关函 ...

  9. python对acf、pacf复现

    介绍 代码.数据全部免费,都放在我的gitee仓库里面https://gitee.com/yuanzhoulvpi/time_series,想要使用的可以直接到我这个仓库下载.本文对应的jupyter ...

最新文章

  1. window.open(url?param=+paramvalue) 服务端 乱码问题解决
  2. Linux下修改mysql的root密码后数据库消失怎么处理
  3. ibatis中如何调用出参为游标的存储过程
  4. 《C++ 开发从入门到精通》——第2章 C++的重要特质分析2.1 什么是面向对象(object-oriented)...
  5. php linux fork进程 多个进程/线程共享一个 socket连接 出现多个进程响应串联
  6. Makefile的补充学习
  7. UnisGuard防篡改产品了解
  8. Jdbc创建表 利用循环添加数据 ,更新数据
  9. zabbix的入门到精通之zabbix的触发器Trigger
  10. .gitignore更新后如何生效
  11. (238)数字IC工程师核心技能树(一)
  12. 多重共线性的解决方法之——岭回归与LASSO
  13. 物料移动类型和后勤自动科目设置-SAP屠夫
  14. 【日常学习】1月21日 学习内容
  15. 磁共振成像(Magnetic Resonance Imaging,MRI)学习资料汇总,包括:在线学习视频、网站、教材
  16. 红警安装中出现的问题 win10,黑屏和无法联机对战(缺少ipx协议)的问题。
  17. c++十进制数字转换为小写和大写罗马数字的算法(附完整源码)
  18. 配置telnet远程登录管理二层交换机
  19. 人文遥感 — 美丽兴化,千岛菜花
  20. java如何设置成中文字体,Java程序中文字体配置

热门文章

  1. 一站式购车平台“买车车”落地,年内布局百家门店...
  2. VIM编辑器练级攻略
  3. 工具人(超级赛亚人)学长写给超级可爱学妹的web简单课设(css3 动画 + 简单樱花飘落效果)
  4. 第2.3节 Python运算符大全
  5. Android安全开发之WebView中的地雷 1
  6. 解决Betwin客户机经常无法正常登录带来的困扰
  7. 江苏专转本考试时间线
  8. 1邵婷 课件《植树问题(两端都种)》获奖证书
  9. 祝愿大家新年快乐,祝愿祖国繁荣昌盛
  10. 特殊符号用英语怎么说