为什么时间序列预测难如登天?
The unreasonable difficulty of time series forecasting
最近我一直在琢磨,为什么时间序列预测比普通的机器学习任务难那么多。我跑了一堆模型,从简单的统计方法到 Chronos 这样的零样本基础模型,再到让 Claude Opus 这种 LLM 直接续写数字序列。结果发现,在季节性强的数据上,简单的 Seasonal-Naive 和基础模型完胜,而复杂的深度学习模型往往预测方向完全错误。核心原因在于时间序列数据并非独立同分布,它来自单一的数据生成过程,导致信噪比低、有效样本少且分布漂移严重。即便过程具备平稳性和遍历性,也不代表就能被预测,比如白噪声。
时间序列数据来自数据生成过程而非数据生成分布,这意味着数据序列是整个路径上的联合概率分布,而非独立的同分布数据点。
HN 评论区
57- jftuga
她有做时间序列预测实验的 GitHub 仓库吗?我想看看她的代码,并用它来跑我自己的数据集。
- crystal_revenge
> 最近我一直在思考,为什么时间序列预测问题比其他序列学习任务要难得多
每当我教别人时间序列预测时,我都会指出一个最大的挑战:在预测时刻,你总会遇到训练阶段从未见过的值(特别是时间变量 t 的值)。
在许多其他机器学习和统计建模任务中,情况并非如此。你可以针对所有可能遇到的 token 和像素值进行训练,可以对包含的每个类别变量做回归分析,甚至可以对所有连续和离散变量的取值范围内至少有一个观测值。但在预测中,你总会预测到一些超出训练数据范围的数值。
如果你试图建立一个基于温度预测水密度的统计模型,但训练数据只包含 0-100°C 的值,然后你开始预测地球上所有温度范围内的值,就会遇到类似的问题。
不知为何,当时间是变量时,我们似乎认为它不受“在训练数据范围之外进行预测”这一明显局限的影响。
- klodolph
我发现这里面很多都是关于市场的。
是的,预测市场很难。因为任何能成功预测市场的人,都会据此获利,从而改变市场,导致他们的预测失去优势。
如果你预测的是服务器的磁盘使用情况之类的内容,时间序列预测会容易得多。(这里说的“容易”是指你可以做一个简单的预测并获得有用的洞察。)
- c7b
嗯。归根结底,这涉及大量数学,核心就是“预测未来很难”。尤其是当未来本身是一种社会建构时,这一点在这里被忽略了。预测行星运动比预测比特币要容易得多。
- ForceBru
有没有哪些真实世界的时间序列是公认容易预测的?我想找个例子来说明“当时间序列确实可预测且模型真正发挥作用时,预测结果是什么样子的”。