具有预测变量的神经网络时间序列建模

数据挖掘 r 神经网络 时间序列
2021-09-26 17:39:32

许多人 已经 展示了使用神经网络对时间序列数据进行建模的有效性,并描述了这种方法所需的转换和局限性。R 的forecast 甚至在函数中实现了一种方法nnetar

根据我的阅读,所有这些方法都是用于根据过去的观察对单个结果变量进行建模,但是我很难找到对基于神经网络的方法的描述,该方法还包含独立的预测变量(一种 ARIMAx神经网络的模拟)。我找到了对非线性自回归外生模型 (NARX) 的引用,它们似乎应该是我正在寻找的东西,但是我能够找到的所有阅读都更多地讨论了使用这种方法进行多步前进单变量序列的预测。

谁能指出我正确的方向?对于奖励积分,有人知道我在 R 中寻找的内容的实现吗?

2个回答

我认为这篇论文https://dspace.mit.edu/bitstream/handle/1721.1/99565/924315586-MIT.pdf?sequence=1是使用所谓的领先指标和不同的机器学习模型。基本上,您只需要训练集,其中您的输入是您希望预测的变量的过去值加上其他指标(即 past_value_t-6、past_value_t-5 ...、past_value_t-1、additional_variable_1、additional_variable_2、...、additional_variable_n ) 并且输出是未来的单个值 ( t_1 ) 或多个值 ( t_1, t_2, ... t_n ),以防您希望预测例如接下来十二个月的销售额。

也可以使用递归策略为您的预测变量生成未来值。在这种情况下,您根据之前的预测值生成预测值的下一个值。但是,至少根据我的经验,第一个提到的直接策略更有效。

我没有研究过很多时间序列问题,所以我的回答持保留态度。话虽如此,尚不清楚为什么不能将所有预测变量都视为相同,换句话说,将单变量目标序列的先前值和独立预测变量视为常规预测变量。我看不出时间元素有什么特别之处,这使得训练/学习变得特别困难,就像任何其他类型的普通预测器一样。如果时间真的很重要,那么神经网络将通过在训练期间相应地加权多元滞后变量来证明其重要性。这种推理适用于任何类型的模型,而不仅仅是神经网络。例如,梯度提升也是如此。