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

作者:Reclusiveman 时间:2021-04-10 05:53:34 

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='')#预测

来源:https://blog.csdn.net/qq_40707407/article/details/81917061

标签:python,arima模型
0
投稿

猜你喜欢

  • focus 进 textarea 元素后光标位置的修复

    2008-09-27 13:27:00
  • python调用百度API实现人脸识别

    2021-06-11 23:52:23
  • 文字适度阅读的宽度或者字数

    2007-10-26 07:31:00
  • 解决Dreamweaver不支持中文文件名方法

    2008-01-09 12:52:00
  • SQL中exists的使用方法

    2011-12-01 08:36:07
  • 利用Python上传日志并监控告警的方法详解

    2022-08-23 15:31:01
  • msxml3.dll 错误 ‘800c0005’解决方案

    2009-10-05 18:36:00
  • sql server 获取系统时间的方法

    2023-07-17 07:05:36
  • Python decorator拦截器代码实例解析

    2022-04-07 11:03:47
  • 讲解数据库加密技术的功能特性与实现方法

    2008-12-18 14:24:00
  • 用Python编写个解释器实现方法接受

    2023-01-11 15:50:08
  • Python中return用法案例详解

    2022-09-09 10:35:40
  • 关于document.createDocumentFragment()

    2009-04-05 16:04:00
  • sqlserver 动态创建临时表的语句分享

    2012-01-29 17:54:37
  • 关于Math.PI、前自增和后自增

    2009-05-25 12:38:00
  • Python中导入模块的几种方式总结

    2023-08-04 17:03:54
  • Python求两个文本文件以行为单位的交集、并集与差集的方法

    2021-12-25 09:12:18
  • 巧用缓存提高ASP应用程序的性能

    2008-03-09 15:23:00
  • PHP中非常有用却鲜有人知的函数集锦

    2023-11-24 14:29:47
  • python绘制已知点的坐标的直线实例

    2023-03-12 08:36:11
  • asp之家 网络编程 m.aspxhome.com