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中asyncore的用法实例
Sep 29 Python
Python 中urls.py:URL dispatcher(路由配置文件)详解
Mar 24 Python
Python从数据库读取大量数据批量写入文件的方法
Dec 10 Python
Python 装饰器@,对函数进行功能扩展操作示例【开闭原则】
Oct 17 Python
matplotlib 对坐标的控制,加图例注释的操作
Apr 17 Python
python如何输出反斜杠
Jun 18 Python
基于Python3读写INI配置文件过程解析
Jul 23 Python
python3.5的包存放的具体路径
Aug 16 Python
python,Java,JavaScript实现indexOf
Sep 09 Python
Python类成员继承重写的实现
Sep 16 Python
基于Python实现全自动下载抖音视频
Nov 06 Python
Python实现疫情地图可视化
Feb 05 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
实用函数3
2007/11/08 PHP
深入理解PHP之数组(遍历顺序)  Laruence原创
2012/06/13 PHP
Thinkphp的volist标签嵌套循环使用教程
2014/07/08 PHP
一个非常完美的读写ini格式的PHP配置类分享
2015/02/12 PHP
thinkphp验证码的实现(form、ajax实现验证)
2016/07/28 PHP
用javascript父窗口控制只弹出一个子窗口
2007/04/10 Javascript
修改jquery.lazyload.js实现页面延迟载入
2010/12/22 Javascript
深入解析JavaScript中函数的Currying柯里化
2016/03/19 Javascript
Angular外部使用js调用Angular控制器中的函数方法或变量用法示例
2016/08/05 Javascript
ionic组件ion-tabs选项卡切换效果实例
2016/08/27 Javascript
Angular.js实现注册系统的实例详解
2016/12/18 Javascript
js中DOM三级列表(代码分享)
2017/03/20 Javascript
angular-ngSanitize模块-$sanitize服务详解
2017/06/13 Javascript
Iscrool下拉刷新功能实现方法(推荐)
2017/06/26 Javascript
简单快速的实现js计算器功能
2017/08/17 Javascript
详解webpack之图片引入-增强的file-loader:url-loader
2018/10/08 Javascript
详解Vue中的基本语法和常用指令
2019/07/23 Javascript
一起写一个即插即用的Vue Loading插件实现
2019/10/31 Javascript
Vant picker 多级联动操作
2020/11/02 Javascript
Python continue语句用法实例
2014/03/11 Python
Python中的super用法详解
2015/05/28 Python
numpy中实现二维数组按照某列、某行排序的方法
2018/04/04 Python
python学习笔记--将python源文件打包成exe文件(pyinstaller)
2018/05/26 Python
Django添加feeds功能的示例
2018/08/07 Python
Python使用psutil获取进程信息的例子
2019/12/17 Python
Python selenium使用autoIT上传附件过程详解
2020/05/26 Python
python打开音乐文件的实例方法
2020/07/21 Python
英国领先的电子、技术和办公用品购物网站:Ebuyer
2018/04/04 全球购物
物业经理求职自我评价
2013/09/22 职场文书
建筑工程专业毕业生自荐信
2013/10/19 职场文书
结婚喜宴主持词
2014/03/14 职场文书
公司户外活动总结
2014/07/04 职场文书
费城故事观后感
2015/06/10 职场文书
2016最新离婚协议书范本及程序
2016/03/18 职场文书
只需要这一行代码就能让python计算速度提高十倍
2021/05/24 Python
解析Java异步之call future
2021/06/14 Java/Android