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闭包及其作用域详解
Aug 28 Python
Python实现PS滤镜功能之波浪特效示例
Jan 26 Python
python使用jieba实现中文分词去停用词方法示例
Mar 11 Python
python 对dataframe下面的值进行大规模赋值方法
Jun 09 Python
python实现给微信指定好友定时发送消息
Apr 29 Python
使用python进行广告点击率的预测的实现
Jul 04 Python
python画微信表情符的实例代码
Oct 09 Python
Python的几种主动结束程序方式
Nov 22 Python
Python属性和内建属性实例解析
Jan 14 Python
利用pyecharts读取csv并进行数据统计可视化的实现
Apr 17 Python
python中np是做什么的
Jul 21 Python
Python3自带工具2to3.py 转换 Python2.x 代码到Python3的操作
Mar 03 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中的串行化变量和序列化对象
2006/09/05 PHP
关于JSON以及JSON在PHP中的应用技巧
2013/11/27 PHP
简洁Ajax函数处理(示例代码)
2013/11/15 Javascript
jQuery中使用data()方法读取HTML5自定义属性data-*实例
2014/04/11 Javascript
ExtJS4 表格的嵌套 rowExpander应用
2014/05/02 Javascript
jquery中post方法用法实例
2014/10/21 Javascript
JS实现简洁、全兼容的拖动层实例
2015/05/13 Javascript
Ionic2系列之使用DeepLinker实现指定页面URL
2016/11/21 Javascript
使用Angular缓存父页面数据的方法
2017/01/03 Javascript
详解node-ccap模块生成captcha验证码
2017/07/01 Javascript
webpack+vue中使用别名路径引用静态图片地址
2017/11/20 Javascript
浅谈Vue.js 关于页面加载完成后执行一个方法的问题
2019/04/01 Javascript
通过图带你深入了解vue的响应式原理
2019/06/21 Javascript
JavaScript实现单英文金山打字通
2020/07/24 Javascript
vue跳转同一个组件,参数不同,页面接收值只接收一次的解决方法
2019/11/05 Javascript
javascript 对象 与 prototype 原型用法实例分析
2019/11/11 Javascript
python判断windows系统是32位还是64位的方法
2015/05/11 Python
Python Sql数据库增删改查操作简单封装
2016/04/18 Python
python3+mysql查询数据并通过邮件群发excel附件
2018/02/24 Python
Python爬虫——爬取豆瓣电影Top250代码实例
2019/04/17 Python
python打印直角三角形与等腰三角形实例代码
2019/10/20 Python
pycharm通过ssh连接远程服务器教程
2020/02/12 Python
PIL包中Image模块的convert()函数的具体使用
2020/02/26 Python
解决Keras 中加入lambda层无法正常载入模型问题
2020/06/16 Python
Larsson & Jennings官网:现代瑞士钟表匠
2018/03/20 全球购物
电子商务专业学生的自我鉴定
2013/11/28 职场文书
体育教育个人自荐信范文
2013/12/01 职场文书
大学自我鉴定
2013/12/20 职场文书
顶岗实习接收函
2014/01/09 职场文书
电大毕业自我鉴定
2014/02/03 职场文书
优秀团员事迹材料1500字
2014/08/31 职场文书
先进事迹材料怎么写
2014/12/30 职场文书
小学端午节活动总结
2015/02/11 职场文书
会计做账心得体会
2016/01/22 职场文书
Nginx下SSL证书安装部署步骤介绍
2021/12/06 Servers
Redis实现订单过期删除的方法步骤
2022/06/05 Redis