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


63

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

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

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

  1. 如果我们要处理大量数据并且有足够的训练数据,那么LSTM会更好地工作,而ARIMA对于较小的数据集则更好(这是正确的吗?)
  2. ARIMA需要一系列(p,q,d)必须基于数据计算的参数,而LSTM不需要设置此类参数。但是,我们需要为LSTM调整一些超参数。
  3. 编辑:我在这里读到一篇很棒的文章时注意到的两者之间的主要区别是,ARIMA只能在固定时间序列(没有季节性,趋势等)下表现良好,如果需要,想要使用ARIMA

除了上述特性之外,我找不到其他可以帮助我选择最佳模型的要点或事实。如果有人能帮助我找到文章,论文或其他东西,我将非常感谢(到目前为止,还没有运气,只是到处都是一些一般性意见,而没有基于实验的内容。)

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



您介意分享LSTM的代码吗?和谢谢。
帮助

Answers:


24

语句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

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

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

交叉验证和比较模型:

n

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


感谢您的回应。您在ARIMA上的笔记很有帮助,我会尽力记住它们。在交叉验证和比较两个模型的情况下,对于当前数据集,使用各种参数,我可以判断哪种算法的性能更好,依此类推。问题是这些数据集中没有一个可以代表真实数据(流数据),这就是为什么我认为最好让数据科学和机器学习领域的其他人分享他们的思想和经验。
ahajib '16

但是,如果您具有流数据,则可以通过保存流将其转换为测试数据。关于时间序列的好处是,您始终可以从任何数据集中创建测试数据集。您只需要保存一些数据,然后回滚时间即可。
AN6U5

我知道这有点陈旧,但我不得不在这里不同意。d,D参数是用于差异的,就像@ AN6U5所说的那样,但是首先要做这些差异的原因是要在问题上强制平稳。实际上,ARIMA模型的一种解释是,它只是线性回归,带有在时间序列上强制平稳的条件。
瑞安

6

添加到@ AN6U5的响应。

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

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


2

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

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


2

我已经得出了与您自己和其他人相同的结论,对于数字时间序列而言,传统预测仍可能是最适用且可靠的方法。在讨论中,深度学习中存在一些流血,其中将数值的时间序列混入深度学习中,其中(当前)深度学习适用于图像,声音,纯文本或异常检测的模式识别方面的现代挑战。使用VAR / VECM进行日常交易数据时,我通常会获得良好的结果,这可能会应用于您的信号处理用例。


1

作为一个极端的案例,我有机会研究了外汇(Foreign Exchange Rate,外汇汇率)的预测,并对LSTM,window-MLP和ARIMA的表现进行了深入的比较。正如许多文章所说,外汇时间序列接近随机游动序列(它完全是非平稳的)。这些算法都无法预测第二天的即期汇率。例如,如果没有(或几乎没有)变化,则它将保持当前值并且看起来合适。但是,如果明天的即​​期汇率突然(大幅度)变化,则始终无法预测。问题在于,无论培训数据是否足够大,都无法从培训数据中学习(例如,过去10年的现货价格历史记录),因为它是完全随机的(也许是由于交易商的情绪...) 。

实际上,仅滞后为“ 1”的LSTM或滞后为(1,0,0)的ARIMA的性能最佳,因为存储滞后时间超过1的数据根本无济于事。对于这种时间序列,就跟踪性能而言,我要说的是1)ARIMA,2)LSTM,3)MLP。最后评论...具有宏观/微观经济参数(例如GDP差异,债券利率,原油价格,美元指数等)的MLP作为附加功能根本不起作用。

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.