为什么ARIMA可以正确拟合但生成平坦的预测?

时间:2018-09-19 14:01:42

标签: python time-series statsmodels forecasting arima

模型合适,但预测失败

在下面的图片中显示的以下数据上使用(4,0,13)ARIMA模型会产生平坦的预测(也在下面的第二张图片中显示)。我不确定为什么模型可以拟合训练集中的数据,但是之后却什么也没预测。我发现了另一个问题here,该问题说我需要添加季节性因素。我将在下面详细介绍我的经验。

The Time Series (zoomed in)

The Predictions*

*预测图在橙色垂直线之后显示了所有训练数据以及验证数据。训练拟合四舍五入为整数(此数据集中不可能有实数)。请注意,预测只是平坦,然后消失。

问题定义

我有15分钟的时间间隔数据,并希望对其应用SARIMA模型。它具有每天的季节性,定义为上午7点至晚上9点(因此,每4 * 15 = 60个周期(一个小时中的4个15分钟周期* 15小时))。我首先使用增强Dickey-Fuller测试来测试平稳性。这通过了,所以我开始分析ACF和PACF以确定SARIMA参数。

参数确定

(p,d,q)

ACF & PACF on Original Data

由此可见,没有单位根(ACF和PACF之和不等于1),并且由于ACF中没有较大的界限,因此我们需要对序列进行差分。

ACF & PACF on Differenced Data

据此,我发现它略有差异,因此我可能想尝试不使用积分项,并在15(原始绘图中ACF进入频带的点)处添加一个AR项。我还在这里添加一个MA术语。

(P,D,Q)s

我现在寻找季节性因素。我进行了周期60的季节差异,因为那是情节高峰所在。

Seasonal difference

看到这一点,我应该在季节性成分中添加2个MA术语(here中的规则13和7),但该网站还表示通常不使用超过1个季节性MA,因此我将其保留为1。

型号

这给我留下了SARIMA(0,1,1)(0,1,1,60)模型。但是,我用尽了内存以尝试适应此模型(Python,使用statsmodels SARIMA函数)。

问题

我是否正确选择了参数? ARIMA / SARIMA是否可以拟合这些数据?最后,六十年代的SARIMA能否真正发挥作用,我只需要找到一种在其他计算机上运行它的方法?

我猜tl; dr问题是:我做错了什么?

随时进行详细介绍。我想及时了解时间序列,所以更多的信息会更好!

1 个答案:

答案 0 :(得分:0)

要选择最佳拟合模型,请使用AIC / BIC测试来找到接收最佳结果的模型。您可以测试Q和P的不同组合。

BR 答: