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分割和拼接字符串
Nov 01 Python
Python实现把utf-8格式的文件转换成gbk格式的文件
Jan 22 Python
python提取页面内url列表的方法
May 25 Python
Python中property属性实例解析
Feb 10 Python
Python基于FTP模块实现ftp文件上传操作示例
Apr 23 Python
Python从文件中读取指定的行以及在文件指定位置写入
Sep 06 Python
学python安装的软件总结
Oct 12 Python
python读取ini配置的类封装代码实例
Jan 08 Python
Python的赋值、深拷贝与浅拷贝的区别详解
Feb 12 Python
django在开发中取消外键约束的实现
May 20 Python
Flask处理Web表单的实现方法
Jan 31 Python
Python利用capstone实现反汇编
Apr 06 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 yii实现model添加默认值的方法(两种方法)
2016/11/10 PHP
laravel 查询数据库获取结果实现判断是否为空
2019/10/24 PHP
JavaScript Event学习第二章 Event浏览器兼容性
2010/02/07 Javascript
解决css和js的{}与smarty定界符冲突问题的两种方法
2013/09/10 Javascript
Jquery中ajax方法data参数的用法小结
2014/02/12 Javascript
JavaScript获取路径设计源码
2014/05/22 Javascript
使用AngularJS和PHP的Laravel实现单页评论的方法
2015/06/19 Javascript
json+jQuery实现的无限级树形菜单效果代码
2015/08/27 Javascript
jQuery实现网页顶部固定导航效果代码
2015/12/24 Javascript
AngularJs入门教程之环境搭建+创建应用示例
2016/11/01 Javascript
教你一步步用jQyery实现轮播器
2016/12/18 Javascript
nodejs获取微信小程序带参数二维码实现代码
2017/04/12 NodeJs
angularjs2中父子组件的数据传递的实例代码
2017/07/05 Javascript
在HTML文档中嵌入JavaScript的四种方法
2018/05/07 Javascript
js+css实现红包雨效果
2018/07/12 Javascript
微信小程序tabbar底部导航
2018/11/05 Javascript
详解javascript中的Error对象
2019/04/25 Javascript
vue实现简单的日历效果
2020/09/24 Javascript
Vue基于localStorage存储信息代码实例
2020/11/16 Javascript
[55:45]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第三场 8.24
2019/09/10 DOTA
零基础写python爬虫之神器正则表达式
2014/11/06 Python
Python 中的with关键字使用详解
2016/09/11 Python
python爬虫面试宝典(常见问题)
2018/03/02 Python
Python 读取用户指令和格式化打印实现解析
2019/09/02 Python
浅谈Python访问MySQL的正确姿势
2020/01/07 Python
浅谈keras中loss与val_loss的关系
2020/06/22 Python
基于 HTML5 WebGL 实现的垃圾分类系统
2019/10/08 HTML / CSS
Ralph Lauren法国官网:美国高品味时装品牌
2017/12/08 全球购物
仓库组长岗位职责
2014/01/29 职场文书
个人融资协议书范本两则
2014/10/15 职场文书
最新的离婚协议书范本!
2019/07/02 职场文书
基于Nginx实现限制某IP短时间访问次数
2021/03/31 Servers
详解MySQL的半同步
2021/04/22 MySQL
动画「进击的巨人」第86话播出感谢绘公开
2022/03/21 日漫
js判断两个数组相等的5种方法
2022/05/06 Javascript
windows系统搭建WEB服务器详细教程
2022/08/05 Servers