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获取元素在数组中索引号的方法
Jul 15 Python
完美解决python遍历删除字典里值为空的元素报错问题
Sep 11 Python
windows下python 3.6.4安装配置图文教程
Aug 21 Python
对Python3 序列解包详解
Feb 16 Python
python pyinstaller 加载ui路径方法
Jun 10 Python
Python日志无延迟实时写入的示例
Jul 11 Python
django 单表操作实例详解
Jul 30 Python
python3 深浅copy对比详解
Aug 12 Python
Tensorflow读取并输出已保存模型的权重数值方式
Jan 04 Python
解决json中ensure_ascii=False的问题
Apr 03 Python
Python3实现英文字母转换哥特式字体实例代码
Sep 01 Python
Python中qutip用法示例详解
Oct 02 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
PHP迅雷、快车、旋风下载专用链转换代码
2010/06/15 PHP
php中将字符串转为HTML的实体引用的一个类
2013/02/03 PHP
简介WordPress中用于获取首页和站点链接的PHP函数
2015/12/17 PHP
PHP长连接实现与使用方法详解
2018/02/11 PHP
用JS操作FRAME中的IFRAME及其内容的实现代码
2008/07/26 Javascript
如何从jQuery的ajax请求中删除X-Requested-With
2013/12/11 Javascript
js setTimeout()函数介绍及应用以倒计时为例
2013/12/12 Javascript
JS实现的网页倒计时数字时钟效果
2015/03/02 Javascript
Bootstrap3 input输入框插入glyphicon图标的方法
2016/05/16 Javascript
jQuery学习心得总结(必看篇)
2016/06/10 Javascript
探讨AngularJs中ui.route的简单应用
2016/11/16 Javascript
JavaScript利用Date实现简单的倒计时实例
2017/01/12 Javascript
laravel5.4+vue+element简单搭建的示例代码
2017/08/29 Javascript
vue学习之mintui picker选择器实现省市二级联动示例
2017/10/12 Javascript
使用 Node.js 模拟滑动拼图验证码操作的示例代码
2017/11/02 Javascript
详解Vue的钩子函数(路由导航守卫、keep-alive、生命周期钩子)
2018/07/24 Javascript
nodejs二进制与Buffer的介绍与使用
2019/07/11 NodeJs
p5.js临摹动态图形的方法
2019/10/23 Javascript
微信小程序自定义yPicker组件实现省市区三级联动功能
2020/10/29 Javascript
Python FTP操作类代码分享
2014/05/13 Python
简单谈谈Python流程控制语句
2016/12/04 Python
python 有效的括号的实现代码示例
2019/11/11 Python
Python使用py2neo操作图数据库neo4j的方法详解
2020/01/13 Python
Python 调用C++封装的进一步探索交流
2021/03/04 Python
使用HTML5 IndexDB存储图像和文件的示例
2018/11/05 HTML / CSS
捷克多品牌在线时尚商店:ANSWEAR.cz
2020/10/03 全球购物
EJB timer的种类
2014/10/28 面试题
本科生就业推荐信
2014/05/19 职场文书
介绍信格式样本
2015/05/05 职场文书
酒店开业主持词
2015/07/02 职场文书
趣味运动会通讯稿
2015/07/18 职场文书
解决Tkinter中button按钮未按却主动执行command函数的问题
2021/05/23 Python
使用tensorflow 实现反向传播求导
2021/05/26 Python
简单谈谈Python面向对象的相关知识
2021/06/28 Python
nginx刷新页面出现404解决方案(亲测有效)
2022/03/18 Servers
MySQL 逻辑备份 into outfile
2022/05/15 MySQL