可以使用LSTM来预测带有外生变量的时间序列,就像使用SARIMAX模型一样吗?

4

我试图使用外生变量预测时间序列,并已成功地使用SARIMAX模型进行预测,我尝试使用RNN模型(特别是LSTM模型)做同样的事情,但无法找到任何实现外生变量的方法(我有完整的历史数据),但这个变量会影响时间序列,因此需要加以考虑。 非常感谢您的帮助 谢谢


可以稍微详细解释一下您是如何成功地在SARIMAX模型中包含外生变量的,并且在RNN模型中似乎遇到了类似的困难是如何/在哪里遇到的吗? - rigsby
嗨,@rigsby。我在SARIMAX函数中使用了exog属性:model=SARIMAX(train_data,exog=exogenous_train, order=..,seasonal_order=...),然后为了预测,我使用了forecast函数,它让我可以明确地定义一个用于预测的外生变量:fc = model.forecast(steps, exog=exogenous_test)。然而,我似乎无法弄清楚如何在LSTM模型中做到同样的事情。 - user13730526
1个回答

1

请查看cond-rnn。它是一个实现你所需功能的库。

如果你有时间序列数据和其他不依赖于时间的输入,比如来自巴黎和旧金山的天气数据,你想预测下一个温度值,同时你期望基于城市的不同,天气会发生变化。你可以选择以下方法之一:

  • 将辅助特征与时间序列数据组合(难看!)

  • 将辅助特征与RNN层的输出连接起来。这是一种后处理RNN的方式,因为RNN层看不到这些辅助信息。

  • 或者使用这个库!长话短说,用学习到的条件表示(例如巴黎或旧金山)初始化RNN状态。这样你就可以优雅地建模P(x_{t+1}|x_{0:t}, cond)。

而且它非常容易使用。

outputs = cond_rnn.ConditionalRNN(units=NUM_CELLS, cell='LSTM')([inputs, cond])

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接