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调用windows api锁定计算机示例
Apr 17 Python
Python中操作符重载用法分析
Apr 29 Python
简单谈谈Python中函数的可变参数
Sep 02 Python
Python2.X/Python3.X中urllib库区别讲解
Dec 19 Python
python3判断url链接是否为404的方法
Aug 10 Python
django+xadmin+djcelery实现后台管理定时任务
Aug 14 Python
python获取地震信息 微信实时推送
Jun 18 Python
django数据关系一对多、多对多模型、自关联的建立
Jul 24 Python
Django模型中字段属性choice使用说明
Mar 30 Python
Python关键字及可变参数*args,**kw原理解析
Apr 04 Python
Python pip 常用命令汇总
Oct 19 Python
最新PyCharm从安装到PyCharm永久激活再到PyCharm官方中文汉化详细教程
Nov 17 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
ThinkPHP函数详解之M方法和R方法
2015/09/10 PHP
Ubuntu彻底删除PHP7.0的方法
2018/07/27 PHP
PHP实现的多进程控制demo示例
2019/07/22 PHP
php桥接模式应用案例分析
2019/10/23 PHP
实现超用户体验 table排序javascript实现代码
2009/06/22 Javascript
jQuery数组处理方法汇总
2011/06/20 Javascript
web性能优化之javascript性能调优
2012/12/28 Javascript
JavaScript中如何通过arguments对象实现对象的重载
2014/05/12 Javascript
JavaScript+html5 canvas制作的百花齐放效果完整实例
2016/01/26 Javascript
详解JavaScript中数组和字符串的lastIndexOf()方法使用
2016/03/13 Javascript
Bootstrap Chart组件使用教程
2016/04/28 Javascript
Vue0.1的过滤代码如何添加到Vue2.0直接使用
2017/08/23 Javascript
在vue项目中使用element-ui的Upload上传组件的示例
2018/02/08 Javascript
JS字典Dictionary类定义与用法示例
2019/02/01 Javascript
vue中v-show和v-if的异同及v-show用法
2019/06/06 Javascript
Vue2.0 实现页面缓存和不缓存的方式
2019/11/12 Javascript
JavaScript中Object、map、weakmap的区别分析
2020/12/15 Javascript
python实现用户登录系统
2016/05/21 Python
使用Python制作微信跳一跳辅助
2018/01/31 Python
python中join()方法介绍
2018/10/11 Python
pyshp创建shp点文件的方法
2018/12/31 Python
Python基于plotly模块实现的画图操作示例
2019/01/23 Python
Python使用sax模块解析XML文件示例
2019/04/04 Python
在Python中使用MongoEngine操作数据库教程实例
2019/12/03 Python
HTML5逐步分析实现拖放功能的方法
2020/09/30 HTML / CSS
Move Free官方海外旗舰店:美国骨关节健康专业品牌
2017/12/06 全球购物
物业管理大学生个人的自我评价
2013/10/10 职场文书
《最大的“书”》教学反思
2014/02/14 职场文书
建筑工程专业大学生求职信
2014/04/23 职场文书
工地安全质量标语
2014/06/07 职场文书
四风问题对照检查材料整改措施
2014/09/27 职场文书
新学期新寄语,献给新生们!
2019/11/15 职场文书
Python实现天气查询软件
2021/06/07 Python
python编程学习使用管道Pipe编写优化代码
2021/11/20 Python
使用Java去实现超市会员管理系统
2022/03/18 Java/Android
多线程Spring通过@Scheduled实现定时任务
2022/05/25 Java/Android