Python时间序列处理之ARIMA模型的使用讲解


Posted in Python onApril 02, 2019

ARIMA模型

ARIMA模型的全称是自回归移动平均模型,是用来预测时间序列的一种常用的统计模型,一般记作ARIMA(p,d,q)。

ARIMA的适应情况

ARIMA模型相对来说比较简单易用。在应用ARIMA模型时,要保证以下几点:

  • 时间序列数据是相对稳定的,总体基本不存在一定的上升或者下降趋势,如果不稳定可以通过差分的方式来使其变稳定。
  • 非线性关系处理不好,只能处理线性关系

判断时序数据稳定

基本判断方法:稳定的数据,总体上是没有上升和下降的趋势的,是没有周期性的,方差趋向于一个稳定的值。

ARIMA数学表达

ARIMA(p,d,q),其中p是数据本身的滞后数,是AR模型即自回归模型中的参数。d是时间序列数据需要几次差分才能得到稳定的数据。q是预测误差的滞后数,是MA模型即滑动平均模型中的参数。

a) p参数与AR模型

AR模型描述的是当前值与历史值之间的关系,滞后p阶的AR模型可以表示为:

Python时间序列处理之ARIMA模型的使用讲解

其中u是常数,et代表误差。

b) q参数与MA模型

MA模型描述的是当前值与自回归部分的误差累计的关系,滞后q阶的MA模型可以表示为:

Python时间序列处理之ARIMA模型的使用讲解

其中u是常数,et代表误差。

c) d参数与差分

一阶差分:

Python时间序列处理之ARIMA模型的使用讲解

二阶差分:

Python时间序列处理之ARIMA模型的使用讲解

d) ARIMA = AR+MA

Python时间序列处理之ARIMA模型的使用讲解

ARIMA模型使用步骤

  • 获取时间序列数据
  • 观测数据是否为平稳的,否则进行差分,化为平稳的时序数据,确定d
  • 通过观察自相关系数ACF与偏自相关系数PACF确定q和p

Python时间序列处理之ARIMA模型的使用讲解

  • 得到p,d,q后使用ARIMA(p,d,q)进行训练预测

Python调用ARIMA

#差分处理
diff_series = diff_series.diff(1)#一阶
diff_series2 = diff_series.diff(1)#二阶
#ACF与PACF
#从scipy导入包
from scipy import stats
import statsmodels.api as sm
#画出acf和pacf
sm.graphics.tsa.plot_acf(diff_series)
sm.graphics.tsa.plot_pacf(diff_series)
#arima模型
from statsmodels.tsa.arima_model import ARIMA
model = ARIMA(train_data,order=(p,d,q),freq='')#freq是频率,根据数据填写
arima = model.fit()#训练
print(arima)
pred = arima.predict(start='',end='')#预测

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

Python 相关文章推荐
Python中dictionary items()系列函数的用法实例
Aug 21 Python
跟老齐学Python之重回函数
Oct 10 Python
深入浅析Python字符编码
Nov 12 Python
浅谈python中的__init__、__new__和__call__方法
Jul 18 Python
Python 处理数据的实例详解
Aug 10 Python
opencv python 傅里叶变换的使用
Jul 21 Python
解决Python中list里的中文输出到html模板里的问题
Dec 17 Python
django解决订单并发问题【推荐】
Jul 31 Python
Python (Win)readline和tab补全的安装方法
Aug 27 Python
python 如何上传包到pypi
Dec 24 Python
python如何用matplotlib创建三维图表
Jan 26 Python
Pytest之测试命名规则的使用
Apr 16 Python
Python代码实现删除一个list里面重复元素的方法
Apr 02 #Python
从0开始的Python学习014面向对象编程(推荐)
Apr 02 #Python
Python参数解析模块sys、getopt、argparse使用与对比分析
Apr 02 #Python
python flask安装和命令详解
Apr 02 #Python
详解python 3.6 安装json 模块(simplejson)
Apr 02 #Python
Pyinstaller打包.py生成.exe的方法和报错总结
Apr 02 #Python
Python3字符串encode与decode的讲解
Apr 02 #Python
You might like
我的论坛源代码(六)
2006/10/09 PHP
php google或baidu分页代码
2009/11/26 PHP
关于shopex同步ucenter的redirect问题,导致script不运行
2013/04/10 PHP
PHP 5.5 创建和验证哈希最简单的方法详解
2013/11/07 PHP
jQuery+PHP+ajax实现微博加载更多内容列表功能
2014/06/27 PHP
实例介绍PHP的Reflection反射机制
2014/08/05 PHP
PHP时间戳格式全部汇总 (获取时间、时间戳)
2016/06/13 PHP
PHP线程的内存回收问题
2016/07/08 PHP
浅析PHP开发规范
2018/02/05 PHP
PHP生成(支持多模板)二维码海报代码
2018/04/30 PHP
Javascript异步表单提交,图片上传,兼容异步模拟ajax技术
2010/05/10 Javascript
JavaScript isArray()函数判断对象类型的种种方法
2010/10/11 Javascript
JavaScript中获取未知对象属性的代码
2011/04/27 Javascript
javascript中将Object转换为String函数代码 (json str)
2012/04/29 Javascript
javascript弹出层输入框(示例代码)
2013/12/11 Javascript
jquery 操作iframe的几种方法总结
2013/12/13 Javascript
js判断字符长度以及中英文数字等
2013/12/31 Javascript
JS实现适合于后台使用的动画折叠菜单效果
2015/09/21 Javascript
JavaScript保留关键字汇总
2015/12/01 Javascript
JavaScript创建对象的方式小结(4种方式)
2015/12/17 Javascript
详解如何制作并发布一个vue的组件的npm包
2018/11/10 Javascript
Nodejs中的require函数的具体使用方法
2019/04/02 NodeJs
Vue基于iview实现登录密码的显示与隐藏功能
2020/03/06 Javascript
通过实例解析chrome如何在mac环境中安装vue-devtools插件
2020/07/10 Javascript
python通过字典dict判断指定键值是否存在的方法
2015/03/21 Python
Python实现快速排序算法及去重的快速排序的简单示例
2016/06/26 Python
python安装教程
2018/02/28 Python
pandas string转dataframe的方法
2018/04/11 Python
python使用pandas处理excel文件转为csv文件的方法示例
2019/07/18 Python
Python如何调用外部系统命令
2019/08/07 Python
python 解决tqdm模块不能单行显示的问题
2020/02/19 Python
VICHY薇姿美国官方网站:欧洲药房第一的抗衰老品牌
2017/11/22 全球购物
社会实践自我鉴定
2013/11/07 职场文书
元旦活动感言
2014/03/08 职场文书
协议书格式
2014/04/23 职场文书
梅花魂教学反思
2014/04/25 职场文书