一般来说,时间序列与其他机器学习问题并没有真正的不同——你希望你的测试集“看起来像”你的训练集,因为你希望你在训练集上学到的模型仍然适合你的测试集。这是关于平稳性的重要基本概念。时间序列具有额外的复杂性,即您的数据中可能存在长期结构,您的模型可能不够复杂而无法学习。例如,当使用 N 的自回归滞后时,我们无法在比 N 长的间隔上学习依赖关系。因此,当使用 ARIMA 等简单模型时,我们希望数据也是局部平稳的。
正如您所说,静止只是意味着模型的统计数据不会随时间变化(“本地”静止)。ARIMA 模型本质上是回归模型,您可以使用过去的 N 个值作为线性回归的输入来预测第 N+1 个值。(至少,这就是 AR 部分所做的)。当您学习模型时,您正在学习回归系数。如果您有一个时间序列,您可以在其中学习过去的 N 个点和下一个点之间的关系,然后将其应用于一组不同的 N 个点以预测下一个值,那么您隐含地假设相同的关系在N 个预测点和您尝试预测的以下 N+1 个点。这就是平稳性。如果您将训练集分成两个区间并分别进行训练,并得到了两个非常不同的模型——你会从中得出什么结论?你认为你有信心应用这些模型来预测吗?新数据?你会用哪一个?如果数据是“非平稳的”,就会出现这些问题。
我对 RNN 的看法是——您仍在从时间序列的一个片段中学习一种模式,并且您仍然希望将其应用于时间序列的另一部分以获得预测。该模型学习了时间序列的简化表示 - 如果该表示适用于训练集但不适用于测试集,则它不会表现良好。然而,与 ARIMA 不同的是,RNN 能够学习非线性,而像 LSTM 节点这样的专门节点在这方面做得更好。特别是,LSTM 和 GRU 非常擅长学习长期依赖关系。例如见这篇博文。实际上,这意味着“平稳性”的含义对于 RNN 来说不那么脆弱,所以它的问题就少了一些。但是,为了能够学习长期依赖关系,您需要大量数据来训练。
最终,证据就在布丁中。也就是说,像处理任何其他机器学习项目一样进行模型验证。如果您的模型可以很好地预测保留数据,那么您可以对使用它有一定的信心。但与任何其他 ML 项目一样 - 如果您的测试数据与训练数据有显着差异,您的模型将不会表现良好。