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 相关文章推荐
将Django框架和遗留的Web应用集成的方法
Jul 24 Python
用python写的一个wordpress的采集程序
Feb 27 Python
python使用TensorFlow进行图像处理的方法
Feb 28 Python
python3+PyQt5+Qt Designer实现堆叠窗口部件
Apr 20 Python
Python 3.7新功能之dataclass装饰器详解
Apr 21 Python
读取json格式为DataFrame(可转为.csv)的实例讲解
Jun 05 Python
对Python多线程读写文件加锁的实例详解
Jan 14 Python
Python opencv实现人眼/人脸识别以及实时打码处理
Apr 29 Python
Python学习笔记之列表推导式实例分析
Aug 13 Python
利用python实现逐步回归
Feb 24 Python
10款最佳Python开发工具推荐,每一款都是神器
Oct 15 Python
python多次执行绘制条形图
Apr 20 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判断字符以及字符串的包含方法属性
2008/08/30 PHP
mysql From_unixtime及UNIX_TIMESTAMP及DATE_FORMAT日期函数
2010/03/21 PHP
php实现数据库的增删改查
2017/02/26 PHP
详解PHP素材图片上传、下载功能
2019/04/12 PHP
ajax的hide隐藏问题解决方法
2012/12/11 Javascript
js获得指定控件输入光标的坐标兼容IE,Chrome,火狐等多种主流浏览器
2013/05/21 Javascript
jquery仿QQ商城带左右按钮控制焦点图片切换滚动效果
2013/06/27 Javascript
使用Jquery获取带特殊符号的ID 标签的方法
2014/04/30 Javascript
jQuery简单自定义图片轮播插件及用法示例
2016/11/21 Javascript
javascript中活灵活现的Array对象详解
2016/11/30 Javascript
微信小程序 表单Form实例详解(附源码)
2016/12/22 Javascript
vue.js+Element实现表格里的增删改查
2017/01/18 Javascript
javascript 玩转Date对象(实例讲解)
2017/07/11 Javascript
在vue中获取token,并将token写进header的方法
2018/09/26 Javascript
Vue+Django项目部署详解
2019/05/30 Javascript
ES6顶层对象、global对象实例分析
2019/06/14 Javascript
JavaScript随机数的组合问题案例分析
2020/05/16 Javascript
[00:37]食人魔魔法师轮盘吉兆顺应全新至宝将拥有额外款式
2019/12/19 DOTA
win7 下搭建sublime的python开发环境的配置方法
2014/06/18 Python
python中lambda与def用法对比实例分析
2015/04/30 Python
ansible作为python模块库使用的方法实例
2017/01/17 Python
通过源码分析Python中的切片赋值
2017/05/08 Python
python3利用ctypes传入一个字符串类型的列表方法
2019/02/12 Python
Python面向对象程序设计类变量与成员变量、类方法与成员方法用法分析
2019/04/12 Python
Django的性能优化实现解析
2019/07/30 Python
Python使用get_text()方法从大段html中提取文本的实例
2019/08/27 Python
Python中关于浮点数的冷知识
2019/09/22 Python
python如何提取英语pdf内容并翻译
2020/03/03 Python
详细分析Python可变对象和不可变对象
2020/07/09 Python
CSS3中新增的对文本和字体的设置
2020/02/03 HTML / CSS
租车协议书范本
2014/04/22 职场文书
幼儿园八一建军节活动方案
2014/08/27 职场文书
乡镇党的群众路线对照检查材料
2014/09/24 职场文书
服务员岗位职责
2015/02/03 职场文书
导游词创作书写原则以及开场白技巧怎么学?
2019/09/25 职场文书
制作能在nginx和IIS中使用的ssl证书
2021/06/21 Servers