ARMA模型建模流程
建模流程
1 )平稳性检验
原始数据data 经过清洗得到data_new ,然后进行平稳性检验,非平稳数据无法采用ARMA 模型进行预测,ADF 检验可以用来确定数据的平稳性,这里导入的是statsmodels 包下的adfuller 函数。
2 )白噪声检验
白噪声数据没有分析价值,所以要进行白噪声检验,LB 检验可以确定数据是否为白噪声,这里导入的是statsmodels 包下的acorr_ljungbox 函数。
3 )ACF 、PACF 图绘制
自相关函数与偏自相关函数图可以用来进行模型的识别,这里我们直接使用statsmodels 包下的plot_acf 和plot_pacf 函数绘制ACF 和PACF 图。
4 )模型定阶
使用AIC 准则进行模型参数估计,从statsmodels 包导入ARIMA(p,0,q),即ARMA(p,q),通过循环遍历找出使得AIC 值最小的模型参数。
5 )模型检验
在使用ARMA 模型进行预测后,通过计算真实值与预测值之间的差值得到残差序列,并使用LB 检验确定残差序列是否为白噪声,若是白噪声,则模型性能较好,反之则差。
结果分析
1 )平稳性检验结果
discoveries 数据集可视化结果
绘制时间序列数据图像,观其大致平稳,进行ADF 检验,得到概率p 值为0.007 ,小于0.05 ,认为序列平稳。
2 )白噪声检验结果
LB 检验的概率p 值为0.0054 ,认为该时间序列为非白噪声序列,可以进行后续分析。
3 )ACF 、PACF 图
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]
模型拟合与预测结果图
6 )模型检验结果
残差图
从残差图可以看出,残差序列平稳,进行白噪声检验,得到LB 检验的概率p 值为0.277 ,认为残差序列为白噪声序列,模型性能较好。
ARMA 模型特点:
优点:模型简单,易于解释。
缺点:只能处理平稳时间序列,而现实生活中的数据以非平稳时间序列为主;只适用于短期预测。
Original: https://blog.csdn.net/m0_48973594/article/details/124522920
Author: 爱雅汇
Title: ARMA模型时间序列分析全流程(附python代码)
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/606154/
转载文章受原作者版权保护。转载请注明原作者出处!