使用AIC评估ARIMA模型

时间:2020-06-08 10:08:52

标签: python r time-series arima pmdarima

最近遇到了ARIMA /季节性ARIMA,我想知道为什么选择AIC作为模型适用性的估计量。根据{{​​3}},它在惩罚非简约模型时评估拟合的优度,以防止过度拟合。许多网格搜索功能(例如Wikipedia中的auto_arimaPython)都将其用作评估指标,并建议AIC最低的模型最适合。

但是,在我的情况下,选择一个简单的模型(具有最低的AIC->少量参数)只会得到一个模型,该模型强烈遵循先前的样本内观察结果,并且对测试样本数据的性能非常差。我看不到仅通过选择少量参数如何防止过度拟合...

ARIMA(1,0,1)(0,0,0,53); AIC=-16.7

R

我误会了吗?有什么解决方法可以防止这种情况发生?

2 个答案:

答案 0 :(得分:2)

对于ARIMA模型,无论模型的参数是什么,它都将遵循过去的观察结果,即您可以根据数据中的先前值预测下一个值。现在,auto.arima会尝试一些模型,并默认为您提供AIC最低的模型或其他信息准则(例如BIC)。这仅意味着这些标准的定义,其含义无非是:因此,具有最低AIC的模型就是给出最小化AIC功能的模型。在确定时间序列稳定后进行时间序列分析时,建议您检查时间序列的ACFPACF图,并阅读this

P.S在垂直虚线之后,您的绘图中没有橙色的直线。

答案 1 :(得分:1)

我们通常使用某种形式的交叉验证来防止过度拟合。 well known在某些关于正态性的假设下,一劳永逸的交叉验证与AIC渐近等效。确实,当我们计算能力较低时,AIC和其他信息标准正是因为它们完成了某些事情而很方便在分析上非常类似于交叉验证。

此外,请注意,就其本质而言,ARMA(1,1)模型以及与此相关的其他固定式ARMA模型趋向于相当快地收敛为常数。最简单的方法是写下y_t + 1,y_t + 2的表达式作为y_t的函数。您将看到该表达式的指数小于1(您的AR和MA参数),随着t的增长,该指数迅速收敛为零。另请参见此discussion

“观察到的”数据(虚线左侧)不显示此行为的原因是,对于每个周期,您都会获得新的随机误差项epsilon_t的实现。在右侧,您没有获得这些随机冲击的实现,而是将它们替换为其表示的值0。