根据SARIMA实验的基本流程,对强生每股季度利润进行建模预测。
1)进行数据可视化操作。
2)进行季节性分析和平稳性分析。
3)如有必要,进行平稳化操作,并且检查是否为白噪音。
4)画出ACF、PACF图像,利用阶数搜索确定合理的阶数。
5)选择三个模型(SARIMA、ARIMA、Xgboost)分析误差,预测未来。
读取原始数据,设置时间为行索引,选择其中的“value”列作为实验对象。
绘制强生每股季度利润图,观察序列平稳性、趋势性和周期性。
使用STL方法将原始数据分解为趋势项、季节项和随机项;定义stationary_plot函数,用以在一张图上绘制原始序列、均值序列、标准差序列;定义test_stationarity函数,对序列进行ADF检验,检验其平稳性。
对原始序列进行1阶4步差分,对差分得到的序列进行ADF检验,若平稳,就使用定义的test_white_nosie函数检验差分序列是否为白噪声序列。
经过模型定阶,建立以下三个模型:model1为SARIMA模型,是本实验的主要模型,model2为不考虑季节性的ARIMA模型,model3为Xgboost模型,其中model2和model3为对比模型。
使用建立的模型对原始序列进行预测。
定义func_plot函数用来绘制model1和model2的预测图像。
绘制原始数据折线图,观察到序列不平稳,具有明显的上升趋势和周期为4的季节性。
原始序列数据可视化结果
原始序列分解图
对原始序列进行分解,得到趋势项、季节项和随机项.
原始序列及均值方差图
原始序列均值ACF与PACF图
从ACF图和PACF图可以看出,原始序列均值存在明显的自相关性,经过ADF检验,得到概率p值为1.0,认为序列不平稳。
经过对原始序列进行1阶4步差分,新序列经过ADF检验得到概率p值为1.08×10-8,认为差分序列满足平稳性要求,后经过LB检验认为差分序列为非白噪声序列,可以进行后续分析。
原始序列ACF与PACF图
首先绘制ACF和PACF图,可以看出,原始序列存在明显的拖尾现象,并可以看到季节性;然后进行网格搜索定阶,得到对应AIC值最小的模型为ARIMA(0,0,0)×(1,0,0,4)。
SARIMA模型检验结果图
ARIMA模型检验结果图
Xgboost模型残差序列图
由模型检验结果图可以看出,三个模型的残差序列在后期都有较大的波动,其中Xgboost模型在前期季节性不明显时的表现效果较好。
SARIMA模型(左)与ARIMA模型(右)预测结果图
Xgboost模型预测结果图
SARIMA模型特点:
优点:模型简单,易于解释;可以通过差分处理非平稳时间序列,通过季节分解处理包含季节性的序列。
缺点:只适用于短期预测,长期预测准确度较低。
完整python代码如下:
SARIMA模型时间序列数据分析python代码-数据挖掘文档类资源-CSDN下载使用SARIMA模型进行时间序列数据分析编程语言:python代码编辑器:jupyternot更多下载资源、学习资料请访问CSDN下载频道.https://download.csdn.net/download/m0_48973594/85933141