使用时间序列交叉验证计算预测误差


13

我有一个时间序列的预测模型,我想计算其样本外预测误差。目前,我遵循的策略是Rob Hyndman的博客(在页面底部附近)建议的策略(假设时间序列和大小为的训练集)y1,,ynk

  1. 使模型适合数据并让作为下一个观测值的预测。yt,,yt+k1y^t+k
  2. 将预测误差计算为。et=y^t+kyt+k
  3. 重复t=1,,nk
  4. 将均方误差计算为MSE=1nkt=1nket2

我的问题是,由于我的训练集重叠,我有多少需要担心相关性。特别要说的是,我不仅要预测下一个值,还要预测接下来的值,这样我就可以预测\ hat {y} _ {t + k},\ dots,\ hat {y} _ {t + k + m-1}和错误e_ {t,1},\ dots,e_ {t,m},我想构造一个预测错误的术语结构。my^t+k,,y^t+k+m1et,1,,et,m

我是否仍可以每次将训练集的窗口向前滚动1个,还是应该向前滚动m?如果我要预测的序列中存在显着的自相关,那么这些问题的答案将如何改变(可以想象这是一个长记忆过程,即自相关函数随幂定律而不是指数衰减。)

我希望在这里提供解释,也可以链接到可以找到有关MSE(或其他误差度量)的置信区间的理论结果的地方。

Answers:


11

听起来您可能对使用最大熵引导程序而不是交叉验证来估计错误更感兴趣。这将允许您生成数据的多个引导程序,然后可以将其拆分为任意数量的训练/测试集,以计算预测的置信区间。

Rob Hyndman 在他的博客上进一步讨论了时间序列交叉验证,他在其中实现了“滚动”和预测的几种不同方法,但主要侧重于实现。我的博客上也有一些进一步的实现。也许最简单的方法是在所有时间范围内平均误差,因此忽略误差中潜在的相关性。

据我所知,时间序列数据的交叉验证的理论状态在某种程度上落后于一般交叉验证的理论状态。凭直觉,我期望误差会随着范围的增加而增加,这表明您应该期望跨各种预测范围的相关误差。为什么这让您担心?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.