多步时序预测通常有4种方法。

递归预测(Recursive Multi-step Forecast)

递归预测只需要一个模型,用来预测下一个step的值。每次预测完毕,会把预测值当做输入,来预测下一个时间点的模型。

优点:

  • 只需要一个模型

缺点:

  • 由于使用上一步的预测值作为输入,预测误差会传递,误差会变得越来越大

$$ \hat x^{(t+1)} = \text{model}(x^{(t)},x^{(t-1)}, x^{(t-2)}, ..., x^{(t-n)}\\ $$

$$ \hat x^{(t+2)} = \text{model}(\hat x^{(t+1)},x^{(t)},x^{(t-1)}, ..., x^{(t-n+1)})\\ $$

$$ \hat x^{(t+3)} = \text{model}(\hat x^{(t+2)},\hat x^{(t+1)},x^{(t)}, ..., x^{(t-n+2)}) $$

直接预测(Direct Multi-step Forecast Strategy)

这种方法需要训练多个模型。

优点:

  • 准确率高

缺点:

  • 需要训练多个模型

$$ \hat x^{(t+1)} = \text{model}_1(x^{(t)},x^{(t-1)}, x^{(t-2)}, ..., x^{(t-n)}\\ $$

$$ \hat x^{(t+2)} = \text{model}_2(x^{(t)},x^{(t-1)}, x^{(t-2)}, ..., x^{(t-n)})\\ $$

$$ \hat x^{(t+3)} = \text{model}_3(x^{(t)},x^{(t-1)}, x^{(t-2)}, ..., x^{(t-n)}) $$

直接&递归混合预测(Direct-Recursive Hybrid Strategies)

结合直接预测与递归预测的方法。

首先会有一组直接预测模型,用来预测每个step的值。

另外还有一个单步模型,会把直接模型的预测值作为输入。

优点:

  • 结合直接预测和递归预测的优点,一定程度上避免了误差传播

缺点:

  • 计算量大
  • 仍有误差扩大的风险

$$ \begin{align} \hat x_{\text{direct}}^{(t+1)} &= \text{model}_1(x^{(t)},x^{(t-1)}, x^{(t-2)}, ..., x^{(t-n)})\\ \hat x_{\text{direct}}^{(t+2)} &= \text{model}_2(x^{(t)},x^{(t-1)}, x^{(t-2)}, ..., x^{(t-n)})\\ \hat x_{\text{direct}}^{(t+3)} &= \text{model}_3(x^{(t)},x^{(t-1)}, x^{(t-2)}, ..., x^{(t-n)})\\ ...\\ \hat x^{(t+1)} &= \text{model}_{\text{recursive}}(x^{(t)},x^{(t-1)}, x^{(t-2)}, ..., x^{(t-n)})\\ \\ \hat x^{(t+2)} &= \text{model}_{\text{recursive}}(\hat x_{\text{direct}}^{(t+1)},x^{(t)},x^{(t-1)}, ..., x^{(t-n+1)})\\ \\ \hat x^{(t+3)} &= \text{model}_{\text{recursive}}(\hat x_{\text{direct}}^{(t+2)},\hat x_{\text{direct}}^{(t+1)},x^{(t)}, ..., x^{(t-n+2)}) \end{align} $$

输出预测(Multiple Output Strategy)

利用多输出神经网络直接预测多个时间步的输出。

优点:

  • 不会有误差传递风险
  • 同时学习多个输出,能够找到每个时间步的关联

缺点:

  • 计算量过大
  • 只能使用神经网络,不能使用tree-based模型

$$ \hat x^{(t+1)},\hat x^{(t+2)},\hat x^{(t+3)}... = \text{model}(x^{(t)},x^{(t-1)}, x^{(t-2)}, ..., x^{(t-n)}) $$

总结

无论是递归预测还是直接预测,都有一定的问题,要解决这些问题,一般有几种解法:

  • 根据paper$^{[1]}$中所言,递归预测的bias更高,而直接预测的variance更高。paper建议开始使用递归预测,再使用直接预测来预测递归预测的误差。
  • 尝试在递归预测中只使用多步融合特征(rolling),而不使用单个特征。因为融合特征受到的影响更小。此外,时间绪论预测通常严重依赖最近一个step的值,因此导致递归模型的误差会方法过多。如果只使用多步融合特征,那么鲁棒性就会更强。

参考资料

[1] 论文:Recursive and direct multi-step forecasting: the best of both worlds

[2] Kaggle M5 Forecasting的Discussion

最后修改:2022 年 03 月 21 日 10 : 06 PM
如果觉得我的文章对你有用,请随意赞赏