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如何避免循环导入问题详解
Sep 14 Python
Python设计模式之工厂模式简单示例
Jan 09 Python
Python logging管理不同级别log打印和存储实例
Jan 19 Python
Python标准库笔记struct模块的使用
Feb 22 Python
Python cookbook(数据结构与算法)将多个映射合并为单个映射的方法
Apr 19 Python
Python实现简单石头剪刀布游戏
Jan 20 Python
详解如何从TensorFlow的mnist数据集导出手写体数字图片
Aug 05 Python
利用 Flask 动态展示 Pyecharts 图表数据方法小结
Sep 04 Python
Python实现自动打开电脑应用的示例代码
Apr 17 Python
Python 字符串池化的前提
Jul 03 Python
python中字典增加和删除使用方法
Sep 30 Python
2020年10款优秀的Python第三方库,看看有你中意的吗?
Jan 12 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/12/06 PHP
解决CodeIgniter伪静态失效
2014/06/09 PHP
PHP常用文件操作函数和简单实例分析
2016/06/03 PHP
Yii2实现跨mysql数据库关联查询排序功能代码
2017/02/10 PHP
Laravel5.1 框架Request请求操作常见用法实例分析
2020/01/04 PHP
jQuery 一个图片切换的插件
2011/10/09 Javascript
Javascript查询DBpedia小应用实例学习
2013/03/07 Javascript
iframe的父子窗口之间的对象相互调用基本用法
2013/09/03 Javascript
JS中JSON对象和String之间的互转及处理技巧
2016/04/06 Javascript
Vue实现todolist删除功能
2018/06/26 Javascript
微信小程序利用swiper+css实现购物车商品删除功能
2019/03/06 Javascript
seajs和requirejs模块化简单案例分析
2019/08/26 Javascript
Vue解决echart在element的tab切换时显示不正确问题
2020/08/03 Javascript
openlayers实现地图测距测面
2020/09/25 Javascript
如何正确解决VuePress本地访问出现资源报错404的问题
2020/12/03 Vue.js
python自动格式化json文件的方法
2015/03/11 Python
python机器学习理论与实战(五)支持向量机
2018/01/19 Python
Jupyter notebook远程访问服务器的方法
2018/05/24 Python
Python实现按逗号分隔列表的方法
2018/10/23 Python
python中@property和property函数常见使用方法示例
2019/10/21 Python
如何解决tensorflow恢复模型的特定值时出错
2020/02/06 Python
python selenium自动化测试框架搭建的方法步骤
2020/06/14 Python
python 已知平行四边形三个点,求第四个点的案例
2020/04/12 Python
在tensorflow下利用plt画论文中loss,acc等曲线图实例
2020/06/15 Python
50个强大璀璨的CSS3/JS技术运用实例
2010/02/27 HTML / CSS
使用HTML5和CSS3制作一个模态框的示例
2018/03/07 HTML / CSS
苹果音乐订阅:Apple Music
2018/08/02 全球购物
PREMIUM-MALL法国:行李、箱包及配件在线
2019/05/30 全球购物
汽车促销活动方案
2014/03/31 职场文书
竞选班干部演讲稿
2014/04/24 职场文书
公司授权委托书范文
2014/09/21 职场文书
红十字会救护培训简讯
2015/07/20 职场文书
党员干部学法用法心得体会
2016/01/21 职场文书
如何书写读后感?(附范文)
2019/07/26 职场文书
vite+vue3.0+ts+element-plus快速搭建项目的实现
2021/06/24 Vue.js
mybatis3中@SelectProvider传递参数方式
2021/08/04 Java/Android