1

最近遇到了 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

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

4

2 回答 2

2

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

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

于 2020-06-08T12:46:03.693 回答
1

我们通常使用某种形式的交叉验证来防止过度拟合。众所周知,在一些关于正态性等假设下,留一法交叉验证渐近等效于 AIC。事实上,当我们的计算能力较少时,AIC 和其他信息标准很方便,因为它们完成的事情非常类似于分析交叉验证。

另外,请注意 ARMA(1,1) 模型和其他固定 ARMA 模型本质上倾向于很快收敛到一个常数。看到这一点的最简单方法是将 y_t+1、y_t+2 的表达式写成 y_t 的函数。您将看到表达式具有小于 1 的指数(您的 AR 和 MA 参数),随着 t 的增长,它们迅速收敛到零。另请参阅此讨论

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

于 2020-06-10T09:23:28.480 回答