首页 > 解决方案 > 使用 AIC 评估 ARIMA 模型

问题描述

最近遇到了 ARIMA/季节性 ARIMA,我想知道为什么选择 AIC 作为模型适用性的估计器。根据Wikipedia的说法,它评估拟合的优度,同时惩罚非简约模型以防止过度拟合。许多网格搜索函数(如PythonRauto_arima中的)将其用作评估指标,并建议具有最低 AIC 的模型作为最佳拟合。

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

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

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

我是不是误会了什么?有什么办法可以防止这种情况发生?

标签: pythonrtime-seriesarimapmdarima

解决方案


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

PS 在垂直虚线之后,我没有在你的情节中得到这条橙色的直线。


推荐阅读