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模型可以表示为:
其中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='')#预测
来源:https://blog.csdn.net/qq_40707407/article/details/81917061
标签:python,arima模型
0
投稿
猜你喜欢
Django Form and ModelForm的区别与使用
2022-04-12 15:28:10
设计提升满意度
2010-05-16 15:00:00
Go 每日一库之termtables的使用
2024-05-22 10:20:25
Windows系统下实现pycharm运行.sh文件(本地运行和打开服务器终端)
2021-03-04 23:53:45
python实现AES算法及AES-CFB8加解密源码
2022-06-14 01:24:01
简单谈谈MySQL数据透视表
2024-01-25 05:42:07
Scratch3.0二次开发之windows环境下打包成exe的流程
2022-12-31 03:27:34
python爬虫框架talonspider简单介绍
2021-05-14 06:27:01
js判断输入字符串是否为空、空格、null的方法总结
2024-04-19 09:56:56
opencv python截取圆形区域的实现
2022-11-27 06:58:50
pandas DataFrame 交集并集补集的实现
2023-05-02 12:03:27
CentOS中升级Python版本的方法详解
2021-08-22 20:22:30
eval(function(p,a,c,k,e,d)系列解密javascript程序
2024-04-19 10:01:20
MySQL执行状态的查看与分析
2024-01-23 18:48:56
基于webpack.config.js 参数详解
2024-05-02 16:28:30
解决pytorch 交叉熵损失输出为负数的问题
2022-04-29 10:17:33
HTML 5 Video概述
2010-06-23 18:56:00
基于python的图片修复程序(实现水印去除)
2021-07-03 13:35:04
MySQL 表数据的导入导出操作示例
2024-01-18 17:20:19
Python使用Phantomjs截屏网页的方法
2022-06-17 15:47:14