时间序列预测回溯窗口——滑动还是增长?

机器算法验证 时间序列 预测 在线算法
2022-03-21 19:50:07

在在线时间序列预测(反之亦然)中,是否有充分的理由更喜欢滑动模型训练窗口而不是增长窗口?我特别指的是金融时间序列。

我直觉地认为滑动窗口应该表现得更差——在样本之外——因为它更有可能过度拟合特定的样本窗口特征,但我看到的一些经验结果与此相反。

此外,鉴于某些人更喜欢滑动窗口,您的方法是确定回溯长度(除了纯粹的启发式方法之外,有什么好的理由更喜欢一个而不是另一个)?

虽然我没有指定模型,但一个例子可能是 ARIMA。

编辑:我应该补充一下,By有一篇相关的博客文章。Rob Hyndman,他称之为“时间序列”交叉验证。虽然它确实涵盖了所描述的概念,但它并没有给出关于为什么一种方法可能优于另一种方法的正式理由,也没有给出关于最佳回溯窗口参数的任何想法。

2个回答

窗口长度的选择涉及两个相反因素之间的平衡。较短的窗口意味着执行估计的数据集较小。较长的窗口意味着数据生成过程在窗口覆盖的时间段内发生变化的机会增加,因此最旧的数据不再代表系统的当前行为。

例如,假设您希望估计纽约一月份的平均气温。由于气候变化,40 年前的数据不再代表当前状况。但是,如果仅使用过去 5 年的数据,由于自然抽样变异性,您的估计将具有很大的不确定性。

类似地,如果你试图模拟道琼斯工业平均指数的行为,你可以提取一个世纪前的数据。但您可能有正当理由相信 1920 年代的数据不能代表今天产生 DJIA 值的过程。

换句话说,较短的窗口会增加您的参数风险,而较长的窗口会增加您的模型风险较短的数据样本会增加您的参数估计偏离的可能性,具体取决于您的模型规范。更长的数据样本会增加您尝试扩展模型以涵盖比其准确表示的更多案例的机会。更“本地化”的模型可能会做得更好。

因此,您选择的窗口大小取决于您的特定应用程序——包括不同类型错误的潜在成本。如果您确定基础数据生成过程是稳定的,那么您拥有的数据越多越好。如果不是,那么也许不是。

在不了解您的应用程序细节的情况下,恐怕我无法就如何适当地取得这种平衡提供更多见解。也许其他人可以提供指向特定统计测试的指针。

大多数人在实践中所做的(不一定是最佳实践)是密切关注它,选择最长的窗口,在此期间基础数据生成过程没有发生“太大”的变化。这些判断基于分析师对数据生成过程的启发式理解。

我对你的语言有点困惑。您的意思是我如何加权过去以做出预测,例如 12 周期移动平均线?ARIMA 模型确定要使用的观察数(窗口?)以及如何对窗口中的值进行最佳加权。一个例子是将权重 1 分配给最后一个观察值,而将零分配给其他地方。另一个例子可能是对最后 k 个观测值进行同等加权。ARIMA 模型可以用这些术语表示(Pi 权重)。

您的第一个建议:更新可以像调整参数或调整参数并可能更改模型一样简单。这种方法将为您提供对样本外性能的诚实估计。如果参数正在改变,或者模型正在改变或者误差方差容易改变,那么你的第二个建议会更好,因为只使用新数据。这样做的问题是丢弃/忽略以前的值是在模型制定方面付出代价的。最近我向一位客户建议,他们取 1200 个历史(每日值)并在过去大约 20 个时间点预测 30 天,并测量 30 天期间的加权 MAPE。每个点的预测都以截至该点的数据为前提,并注意验证参数/模型在该点之前没有改变,并且误差方差已超过方差恒定性要求。通过这种方式,他们可以对来自任何未来来源的预期 MAPE 进行经验分布,以用作基准或预期 MAPE。通过这种方式,可以识别不寻常的地图。不寻常的 MAPE 可能表明 DGP(数据生成过程)的变化或建模过程的缺陷。在我看来,您主要关心的是感知/挑战锄头实际上用于形成模型的许多点。顺便说一句,这是我的主要关注点/ 通过这种方式,他们可以对来自任何未来来源的预期 MAPE 进行经验分布,以用作基准或预期 MAPE。通过这种方式,可以识别不寻常的地图。不寻常的 MAPE 可能表明 DGP(数据生成过程)的变化或建模过程的缺陷。在我看来,您主要关心的是感知/挑战锄头实际上用于形成模型的许多点。顺便说一句,这是我的主要关注点/ 通过这种方式,他们可以对来自任何未来来源的预期 MAPE 进行经验分布,以用作基准或预期 MAPE。通过这种方式,可以识别不寻常的地图。不寻常的 MAPE 可能表明 DGP(数据生成过程)的变化或建模过程的缺陷。在我看来,您主要关心的是感知/挑战锄头实际上用于形成模型的许多点。顺便说一句,这是我的主要关注点/