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笔记(1) 关于我们应不应该继续学习python
Oct 24 Python
python实现目录树生成示例
Mar 28 Python
Python对数据库操作
Mar 28 Python
python输入错误密码用户锁定实现方法
Nov 27 Python
python 3.6 tkinter+urllib+json实现火车车次信息查询功能
Dec 20 Python
Windows系统下PhantomJS的安装和基本用法
Oct 21 Python
python GUI库图形界面开发之PyQt5信号与槽基本操作
Feb 25 Python
python nohup 实现远程运行不宕机操作
Apr 16 Python
python+requests接口压力测试500次,查看响应时间的实例
Apr 30 Python
浅谈python处理json和redis hash的坑
Jul 16 Python
Python selenium如何打包静态网页并下载
Aug 12 Python
python 字典和列表嵌套用法详解
Jun 29 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使用PHPMailer发送邮件的简单使用方法
2013/11/12 PHP
php过滤所有恶意字符(批量过滤post,get敏感数据)
2014/03/18 PHP
ThinkPHP采用GET方式获取中文参数查询无结果的解决方法
2014/06/26 PHP
php多个文件及图片上传实例详解
2014/11/10 PHP
php的mssql数据库连接类实例
2014/11/28 PHP
Yii框架上传图片用法总结
2016/03/28 PHP
php使用curl伪造来源ip和refer的方法示例
2018/05/08 PHP
PHP预定义接口――Iterator用法示例
2020/06/05 PHP
给Javascript数组插入一条记录的代码
2007/08/30 Javascript
js split 的用法和定义 js split分割字符串成数组的实例代码
2012/05/13 Javascript
根据json字符串生成Html的一种方式
2013/01/09 Javascript
javascript处理表单示例(javascript提交表单)
2014/04/28 Javascript
JavaScript中的函数声明和函数表达式区别浅析
2015/03/27 Javascript
JavaScript获取当前网页标题(title)的方法
2015/04/03 Javascript
Bootstrap实现水平排列的表单
2016/07/04 Javascript
js获取指定时间的前几秒
2017/04/05 Javascript
JS解惑之Object中的key是有序的么
2019/05/06 Javascript
Vue项目总结之webpack常规打包优化方案
2019/06/06 Javascript
ElementUI多个子组件表单的校验管理实现
2019/11/07 Javascript
使用vue重构资讯页面的实例代码解析
2019/11/26 Javascript
vue实现图片裁剪后上传
2020/12/16 Vue.js
JS canvas实现画板和签字板功能
2021/02/23 Javascript
将Django使用的数据库从MySQL迁移到PostgreSQL的教程
2015/04/11 Python
Python实现SVN的目录周期性备份实例
2015/07/17 Python
python 文件操作api(文件操作函数)
2016/08/28 Python
Python利用Beautiful Soup模块修改内容方法示例
2017/03/27 Python
Pyqt5实现英文学习词典
2019/06/24 Python
CSS3混合模式mix-blend-mode/background-blend-mode简介
2018/03/15 HTML / CSS
美国最大的骑马用品零售商:HorseLoverZ
2017/01/12 全球购物
阿联酋最好的手机、电子产品和家用电器网上商店:Eros Digital Home
2020/08/09 全球购物
Java如何获得ResultSet的总行数
2016/09/03 面试题
师范应届生语文教师求职信
2013/10/29 职场文书
医学生自我鉴定范文
2014/03/26 职场文书
个人担保书范文
2014/05/20 职场文书
营销经理工作检讨书
2014/11/03 职场文书
小学三八妇女节活动总结
2015/02/06 职场文书