ARMA模型时间序列分析全流程(附python代码)

ARMA模型建模流程

ARMA模型时间序列分析全流程(附python代码)

建模流程

1 )平稳性检验

ARMA模型时间序列分析全流程(附python代码)

原始数据data 经过清洗得到data_new ,然后进行平稳性检验,非平稳数据无法采用ARMA 模型进行预测,ADF 检验可以用来确定数据的平稳性,这里导入的是statsmodels 包下的adfuller 函数。

2 )白噪声检验

ARMA模型时间序列分析全流程(附python代码)

白噪声数据没有分析价值,所以要进行白噪声检验,LB 检验可以确定数据是否为白噪声,这里导入的是statsmodels 包下的acorr_ljungbox 函数。

3 )ACF 、PACF 图绘制

ARMA模型时间序列分析全流程(附python代码)

自相关函数与偏自相关函数图可以用来进行模型的识别,这里我们直接使用statsmodels 包下的plot_acf 和plot_pacf 函数绘制ACF 和PACF 图。

4 )模型定阶

ARMA模型时间序列分析全流程(附python代码)

使用AIC 准则进行模型参数估计,从statsmodels 包导入ARIMA(p,0,q),即ARMA(p,q),通过循环遍历找出使得AIC 值最小的模型参数。

5 )模型检验

ARMA模型时间序列分析全流程(附python代码)

在使用ARMA 模型进行预测后,通过计算真实值与预测值之间的差值得到残差序列,并使用LB 检验确定残差序列是否为白噪声,若是白噪声,则模型性能较好,反之则差。

结果分析

1 )平稳性检验结果

ARMA模型时间序列分析全流程(附python代码)

discoveries 数据集可视化结果

绘制时间序列数据图像,观其大致平稳,进行ADF 检验,得到概率p 值为0.007 ,小于0.05 ,认为序列平稳。

2 )白噪声检验结果

LB 检验的概率p 值为0.0054 ,认为该时间序列为非白噪声序列,可以进行后续分析。

3 )ACF 、PACF 图

ARMA模型时间序列分析全流程(附python代码)

ACF 图(左)与PACF 图(右)

可以看出,ACF 和PACF 图均呈现出明显的拖尾特点,且有一定的周期性,所以需要选取ARMA 模型。

4 )模型定阶结果

根据AIC 准则,选取使得AIC 值最小的参数,p=4 ,q=4 ,即模型ARMA(4,4)。

5 )预测结果

未来10 个时间点的预测结果为:

[3.07701677 ,1.67355553 ,2.30909501 ,1.9248518 ,3.02228534 ,2.60590081 ,2.81233033 ,2.3156652 ,2.8091806 ,2.79388168]

ARMA模型时间序列分析全流程(附python代码)

模型拟合与预测结果图

6 )模型检验结果

ARMA模型时间序列分析全流程(附python代码)

残差图

从残差图可以看出,残差序列平稳,进行白噪声检验,得到LB 检验的概率p 值为0.277 ,认为残差序列为白噪声序列,模型性能较好。

ARMA 模型特点:

优点:模型简单,易于解释。

缺点:只能处理平稳时间序列,而现实生活中的数据以非平稳时间序列为主;只适用于短期预测。

ARMA模型时间序列分析全流程(附python代码)

Original: https://blog.csdn.net/m0_48973594/article/details/124522920
Author: 爱雅汇
Title: ARMA模型时间序列分析全流程(附python代码)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/606154/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球