Python时间序列处理之ARIMA模型的使用讲解

 更新时间:2019年04月02日 17:11:04   作者:Reclusiveman  
今天小编就为大家分享一篇关于Python时间序列处理之ARIMA模型的使用讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

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模型可以表示为:

其中u是常数,et代表误差。

b) q参数与MA模型

MA模型描述的是当前值与自回归部分的误差累计的关系,滞后q阶的MA模型可以表示为:

其中u是常数,et代表误差。

c) d参数与差分

一阶差分:

二阶差分:

d) ARIMA = AR+MA

ARIMA模型使用步骤

  • 获取时间序列数据
  • 观测数据是否为平稳的,否则进行差分,化为平稳的时序数据,确定d
  • 通过观察自相关系数ACF与偏自相关系数PACF确定q和p

  • 得到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笔记之a = [0]*x格式的含义及说明

    Python笔记之a = [0]*x格式的含义及说明

    这篇文章主要介绍了Python笔记之a = [0]*x格式的含义及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • python批量导入数据进Elasticsearch的实例

    python批量导入数据进Elasticsearch的实例

    今天小编就为大家分享一篇python批量导入数据进Elasticsearch的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • 如何使用Python 绘制瀑布图

    如何使用Python 绘制瀑布图

    这篇文章主要介绍了如何使用Python 绘制瀑布图,我们一起了解瀑布图的重要性,以及如何使用不同的绘图库绘制瀑布图。瀑布图是一种二维图表,专门用于了解随着时间或多个步骤或变量的增量正负变化的影响,下文更多详细内容需要的小伙伴可以参考一下
    2022-05-05
  • python实现与redis交互操作详解

    python实现与redis交互操作详解

    这篇文章主要介绍了python实现与redis交互操作,结合实例形式分析了Python Redis模块的安装、导入、连接与简单操作相关实现技巧,需要的朋友可以参考下
    2020-04-04
  • 在Pytorch中使用Mask R-CNN进行实例分割操作

    在Pytorch中使用Mask R-CNN进行实例分割操作

    这篇文章主要介绍了在Pytorch中使用Mask R-CNN进行实例分割操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • 手把手教你Python抓取数据并可视化

    手把手教你Python抓取数据并可视化

    很多小伙伴在提到python数据可视化的时候第一反应就是matplotlib库,但实际上python还有很多很好用的数据可视化的库,下面这篇文章主要给大家介绍了关于如何利用Python抓取数据并可视化的相关资料,需要的朋友可以参考下
    2022-05-05
  • Python图像运算之图像掩膜直方图和HS直方图详解

    Python图像运算之图像掩膜直方图和HS直方图详解

    这篇文章将为大家详细讲解图像掩膜直方图和HS直方图,并分享一个通过直方图判断白天与黑夜的案例。文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2022-08-08
  • Python django搭建layui提交表单,表格,图标的实例

    Python django搭建layui提交表单,表格,图标的实例

    今天小编就为大家分享一篇Python django搭建layui提交表单,表格,图标的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • Python处理时间戳和时间计算等的脚本分享

    Python处理时间戳和时间计算等的脚本分享

    这篇文章主要为大家整理总结了5个实用的Python小,可以实现时间戳处理和时间计算。文中的示例代码讲解详细,感兴趣的小伙伴可以学习一下
    2022-07-07
  • Python实现迪杰斯特拉算法过程解析

    Python实现迪杰斯特拉算法过程解析

    这篇文章主要介绍了Python实现迪杰斯特拉算法过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09

最新评论