AIC 与时间序列中的交叉验证:小样本案例

机器算法验证 时间序列 预测 交叉验证 模型选择 aic
2022-01-27 06:16:16

我对时间序列设置中的模型选择感兴趣。具体而言,假设我想从具有不同滞后阶数的 ARMA 模型池中选择一个 ARMA 模型。最终目的是预测

型号选择可以通过

  1. 交叉验证,
  2. 使用信息标准(AIC、BIC),

在其他方法中。

Rob J. Hyndman 提供了一种对时间序列进行交叉验证的方法。对于相对较小的样本,交叉验证中使用的样本量可能与原始样本量有质的不同。例如,如果原始样本量是 200 个观测值,那么可以考虑通过获取前 101 个观测值并将窗口扩大到 102、103、...、200 个观测值来开始交叉验证,以获得 100 个交叉验证结果。显然,对于 200 次观察来说相当简约的模型对于 100 次观察来说可能太大了,因此它的验证误差会很大。因此,交叉验证可能会系统地支持过于简约的模型。由于样本大小不匹配,这是一种不良影响

交叉验证的替代方法是使用信息标准进行模型选择。因为我关心预测,所以我会使用 AIC。尽管 AIC 渐近等效于最小化时间序列模型的样本外一步预测 MSE(根据Rob J. Hyndman 的这篇文章),但我怀疑这与样本无关,因为样本我关心的尺寸没有那么大...

问题:对于中小样本,我应该选择 AIC 时间序列交叉验证吗?

可以在此处此处此处找到一些相关问题。

3个回答

嗯——如果你的最终目标是预测,那你为什么要进行模型选择?据我所知,在“传统”统计文献和机器学习文献中,模型平均在预测方面都表现出色。简而言之,模型平均意味着您估计所有可能的模型,让它们都预测并平均它们的预测,并根据它们的相关模型证据加权。

一个有用的开始参考是 https://journals.sagepub.com/doi/10.1177/0049124104268644

他们非常简单地解释了这一点,并参考了相关文献。

希望这可以帮助。

抛开理论上的考虑,赤池信息准则只是可能受到自由度的惩罚。接下来,AIC 考虑了数据中的不确定性(-2LL),并假设更多的参数会导致更高的过度拟合风险(2k)。交叉验证只看模型的测试集性能,没有进一步的假设。

如果您最关心的是做出预测,并且可以假设测试集与现实世界的数据相当相似,那么您应该进行交叉验证。可能的问题是,当您的数据很小时,通过拆分它,您最终会得到较小的训练和测试集。训练数据越少不好,测试集数据越少,交叉验证结果就越不确定(参见Varoquaux,2018 年)。如果您的测试样本不足,您可能会被迫使用 AIC,但请记住它测量的内容以及它做出的假设。

另一方面,正如评论中已经提到的,AIC 为您提供无症状保证,而小样本并非如此。小样本也可能会误导数据的不确定性。

我的想法是,两者都做,然后看看。直接使用AIC。AIC 越小,模型越好。但是不能依赖 AIC 就说这样的模型是最好的。因此,如果您有一个 ARIMA 模型池,请使用每个模型并检查现有值的预测,并查看哪个模型预测最接近现有时间序列数据。其次还要检查AIC并考虑两者,这是一个不错的选择。没有硬性规定。只需选择预测最佳的模型即可。