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连接池实现示例程序
Nov 26 Python
Python 实现文件的全备份和差异备份详解
Dec 27 Python
python实现识别手写数字 python图像识别算法
Mar 23 Python
Python3多线程操作简单示例
May 22 Python
在dataframe两列日期相减并且得到具体的月数实例
Jul 03 Python
完美解决python中ndarray 默认用科学计数法显示的问题
Jul 14 Python
在Pycharm中将pyinstaller加入External Tools的方法
Jan 16 Python
浅析python的Lambda表达式
Feb 27 Python
解决win7操作系统Python3.7.1安装后启动提示缺少.dll文件问题
Jul 15 Python
Python的垃圾回收机制详解
Aug 28 Python
python实现简单井字棋小游戏
Mar 05 Python
matplotlib基础绘图命令之bar的使用方法
Aug 13 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
re0第二季蕾姆被制作组打入冷宫!艾米莉亚女主扶正,原因唏嘘
2020/04/02 日漫
php获取错误信息的方法
2015/07/17 PHP
Laravel中获取路由参数Route Parameters的五种方法示例
2017/09/29 PHP
PHP count()函数讲解
2019/02/03 PHP
网页中CDATA标记的说明
2010/09/12 Javascript
Extjs 4.x 得到form CheckBox 复选框的值
2014/05/04 Javascript
js+css实现导航效果实例
2015/02/10 Javascript
jQuery下拉友情链接美化效果代码分享
2015/08/26 Javascript
解决JS请求服务器gbk文件乱码的问题
2015/10/16 Javascript
探寻JavaScript中this指针指向
2016/04/23 Javascript
AngularJS 所有版本下载地址
2016/09/14 Javascript
jquery处理checkbox(复选框)是否被选中实例代码
2017/06/12 jQuery
深入解析nodejs HTTP服务
2017/07/25 NodeJs
Vue封装一个简单轻量的上传文件组件的示例
2018/03/21 Javascript
Vue中如何实现proxy代理
2018/04/20 Javascript
详解如何在vue项目中使用eslint+prettier格式化代码
2018/11/10 Javascript
layui监听下拉选框选中值变化的方法(包含监听普通下拉选框)
2019/09/24 Javascript
Windows8下安装Python的BeautifulSoup
2015/01/22 Python
深入了解Python数据类型之列表
2016/06/24 Python
Python读取文件内容的三种常用方式及效率比较
2017/10/07 Python
python 自动去除空行的实例
2018/07/24 Python
Python中使用logging和traceback模块记录日志和跟踪异常
2019/04/09 Python
WxPython实现无边框界面
2019/11/18 Python
Python selenium 自动化脚本打包成一个exe文件(推荐)
2020/01/14 Python
使用OpenCV获取图像某点的颜色值,并设置某点的颜色
2020/06/02 Python
详解python程序中的多任务
2020/09/16 Python
Canvas 文本转粒子效果的实现代码
2019/02/14 HTML / CSS
澳大利亚在线家具店:Luxo Living
2019/03/24 全球购物
奖学金自我鉴定范文
2013/10/03 职场文书
产品推广策划方案
2014/05/10 职场文书
水利局群众路线专题民主生活会发言材料
2014/09/21 职场文书
小学教师师德师风自我剖析材料
2014/09/29 职场文书
开展批评与自我批评发言材料
2014/10/17 职场文书
男方婚前保证书
2015/02/28 职场文书
宾馆卫生管理制度
2015/08/06 职场文书
大学自主招生自荐信(2016精选篇)
2016/01/28 职场文书