一、主要内容

根据SARIMA实验的基本流程,对强生每股季度利润进行建模预测。

1)进行数据可视化操作。

2)进行季节性分析和平稳性分析。

3)如有必要,进行平稳化操作,并且检查是否为白噪音。

4)画出ACFPACF图像,利用阶数搜索确定合理的阶数。

5)选择三个模型(SARIMAARIMAXgboost)分析误差,预测未来。

二、python编程实现

1)数据读取与预处理

读取原始数据,设置时间为行索引,选择其中的“value”列作为实验对象。

2)数据可视化

绘制强生每股季度利润图,观察序列平稳性、趋势性和周期性。

3)平稳性检验

使用STL方法将原始数据分解为趋势项、季节项和随机项;定义stationary_plot函数,用以在一张图上绘制原始序列、均值序列、标准差序列;定义test_stationarity函数,对序列进行ADF检验,检验其平稳性。

4)序列平稳化

对原始序列进行14步差分,对差分得到的序列进行ADF检验,若平稳,就使用定义的test_white_nosie函数检验差分序列是否为白噪声序列。

5)建立模型

经过模型定阶,建立以下三个模型:model1SARIMA模型,是本实验的主要模型,model2为不考虑季节性的ARIMA模型,model3Xgboost模型,其中model2model3为对比模型。

6)模型预测

使用建立的模型对原始序列进行预测。

定义func_plot函数用来绘制model1model2的预测图像。

三、结果分析

1)数据可视化结果

绘制原始数据折线图,观察到序列不平稳,具有明显的上升趋势和周期为4的季节性。

原始序列数据可视化结果

2)平稳性检验结果

原始序列分解图

对原始序列进行分解,得到趋势项、季节项和随机项.

原始序列及均值方差图

原始序列均值ACFPACF

ACF图和PACF图可以看出,原始序列均值存在明显的自相关性,经过ADF检验,得到概率p值为1.0,认为序列不平稳。

3)差分平稳与白噪声检验结果

经过对原始序列进行14步差分,新序列经过ADF检验得到概率p值为1.08×10-8,认为差分序列满足平稳性要求,后经过LB检验认为差分序列为非白噪声序列,可以进行后续分析。

4)模型定阶结果

原始序列ACFPACF

首先绘制ACFPACF图,可以看出,原始序列存在明显的拖尾现象,并可以看到季节性;然后进行网格搜索定阶,得到对应AIC值最小的模型为ARIMA(0,0,0)×(1,0,0,4)

5)模型检验结果(SARIMA模型、ARIMA模型与Xgboost模型)

SARIMA模型检验结果图

ARIMA模型检验结果图

Xgboost模型残差序列图

       由模型检验结果图可以看出,三个模型的残差序列在后期都有较大的波动,其中Xgboost模型在前期季节性不明显时的表现效果较好。

6)预测结果

SARIMA模型(左)与ARIMA模型(右)预测结果图

Xgboost模型预测结果图

SARIMA模型特点:

优点:模型简单,易于解释;可以通过差分处理非平稳时间序列,通过季节分解处理包含季节性的序列。

缺点:只适用于短期预测,长期预测准确度较低。

完整python代码如下:

SARIMA模型时间序列数据分析python代码-数据挖掘文档类资源-CSDN下载使用SARIMA模型进行时间序列数据分析编程语言:python代码编辑器:jupyternot更多下载资源、学习资料请访问CSDN下载频道.https://download.csdn.net/download/m0_48973594/85933141

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐