使用 ARIMA 与 LSTM 进行时间序列预测

数据挖掘 时间序列 深度学习 rnn 预言
2021-10-04 19:45:42

我正在处理的问题是预测时间序列值。我一次查看一个时间序列,基于例如 15% 的输入数据,我想预测它的未来值。到目前为止,我遇到了两个模型:

  • LSTM(长期短期记忆;一类循环神经网络)
  • 有马

我都尝试过并阅读了一些关于它们的文章。现在我试图更好地了解如何比较两者。到目前为止我发现了什么:

  1. 如果我们处理大量数据并且有足够的训练数据可用,LSTM 效果会更好,而 ARIMA 更适合较小的数据集(这是正确的吗?)
  2. ARIMA 需要一系列参数(p,q,d),必须根据数据计算得出,而 LSTM 不需要设置这些参数。但是,我们需要为 LSTM 调整一些超参数。
  3. 编辑:我在这里阅读一篇很棒的文章时注意到两者之间的一个主要区别是,ARIMA 只能在固定时间序列(没有季节性、趋势等)上表现良好,如果你需要注意这一点想用 ARIMA

除了上述属性,我找不到任何其他点或事实可以帮助我选择最佳模型。如果有人能帮我找到文章、论文或其他东西,我将不胜感激(到目前为止没有运气,只有一些一般性的意见,没有任何基于实验的意见。)

我不得不提一下,最初我正在处理流数据,但是现在我使用的是NAB 数据集,其中包括 50 个数据集,最大大小为 20k 数据点。

4个回答

陈述 1 是正确的,陈述 2 是正确的,但需要详细说明,陈述 3 对于季节性 ARIMA 是不正确的:

以下内容可能会为您指明正确的方向,但希望您能在 LSTM 领域获得更多更深入的答案。

您提到您已经尝试了这两种算法,并且您只是想找出哪个更好,这使我认为您在数据科学过程和交叉验证方面可能比模型的细节方面遇到更多麻烦。

一般时间序列:

一般来说,时间序列很难预测。如果它们很容易预测,那么所有数据科学家都会很富有,准确地预测了所有股票的价值。现实情况是,平均而言,对冲基金的表现并不优于市场,而且时间序列预测通常很差,并且仅适用于非常短的持续时间。主要问题是有很多噪音,有很多隐藏的影响,模型过于简单化,影响者的行为不像我们认为的那样,线性和非线性之间的相互作用是微妙而令人困惑的,......无穷无尽。

有马

您对 ARIMA 需要固定时间序列进行预测的评估是错误的。 非季节性 ARIMA 具有三个输入值,以帮助控制平滑、平稳性和预测ARIMA(p,d,q),其中:

  • p 是自回归项的数量,
  • d 是平稳性所需的非季节性差异的数量,并且
  • q 是预测方程中滞后预测误差的数量。

相比之下,季节性 ARIMA 有六个输入值ARIMA(p,d,q,P,D,Q),其中:

  • P 是季节性自回归项的数量,
  • D 是季节差异的数量,并且
  • Q 是季节性移动平均项的数量。

根据上述限定陈述,我建议使用季节性 ARIMA 来感受平滑、去调味、去趋势、去噪和预测所涉及的复杂性。

长短期记忆体

我对 LSTM 的了解还不够,无法在此处添加很多内容。我要补充一点,当有人开始使用深度学习进行数据科学练习时,往往会引发危险信号。我建议尽可能多地学习使用 ARIMA,然后应用你的一些 ARIMA 专业知识来帮助你学习 LSTM。神经网络可以是一个非常强大的工具,但它们:

  • 可能需要很长时间才能运行,
  • 通常需要比其他模型更多的数据来训练,并且
  • 有很多输入参数需要调整。

交叉验证和比较模型:

时间序列很有趣,因为所有训练数据通常都可以转化为监督学习训练集。一次可以简单地采用时间序列并回滚时间。也就是说...选择一个时间点并假装您没有任何其他数据,然后进行预测并查看您的表现。您可以通过时间序列进行此操作n时间,以便评估模型的性能并比较模型,同时采取必要的预防措施防止过度拟合

希望这会有所帮助,祝你好运!

添加到@AN6U5 的回复。

从纯理论的角度来看,本文表明 RNN 是通用逼近器。我没有详细阅读论文,所以我不知道证明是否也可以应用于 LSTM,但我怀疑是这样。一般来说,RNN(包括 LSTM)的最大问题是由于梯度探索和梯度消失问题,它们很难训练。LSTM 的实际限制似乎是使用标准梯度下降和随机初始化的 200 步左右。如前所述,一般来说,要使任何深度学习模型正常工作,您需要大量数据和大量调整。

ARIMA 模型受到更多限制。如果您的底层系统太复杂,那么根本不可能找到合适的方案。但另一方面,如果你的底层模型足够简单,它会比深度学习方法高效得多。

ARIMA 模型是线性的,LSTM 模型是非线性的。统计学家研究的其他一些参数非线性时间序列模型是阈值自回归模型 (TAR) 和平滑过渡自回归模型 (STAR)。R 包 tsDyn 实现了这些模型。

我想知道 STAR 模型与 LSTM 相比如何。

我得出了与您自己和其他人相同的结论,对于数值的时间序列,传统预测可能仍然是最适用且最可靠的。在深度学习的讨论中,数值的时间序列被混合到深度学习中,深度学习(目前)适用于图像、声音、纯文本或异常检测的模式识别中的现代挑战。对于日常交易数据,我经常使用 VAR / VECM 获得良好的结果,这可能适用于您的信号处理用例。