使用 NNETAR 和 BRNN 的集成机器学习模型
Ensemble machine learning model with NNETAR and BRNN
我使用 forecast
包预测变量 Y
的每日时间序列,使用其滞后值和外部参数 X
的时间序列。我发现 nnetar
模型(NARX 模型)在整体性能方面是最好的。然而,尽管我尝试了各种参数调整,但我无法很好地预测时间序列的峰值。
然后我提取了 Y
的峰值(高于阈值)(当然这不再是常规时间序列)和相应的 X
值并尝试拟合回归模型(注意:不是自回归模型)使用 carat
包中的各种模型。我发现仅使用 X
值的 brnn
(双向递归神经网络)模型对峰值的预测优于同时使用滞后值和 X 值的 nnetar
。
现在我的问题是如何从这里开始创建这两个模型的样本(即每当使用 brnn
回归模型(或任何其他回归模型)的预测更好时我想替换预测使用 nnetar
并继续前进——我最关心的是峰值)?这是常用的方法吗?
与其尝试选择一个在任何时候都更好的模型,通常最好对模型进行平均,以便包含尽可能多的个人观点。
在我参与的实验中,我们试图根据历史表现选择一个表现出色的模型,通常表明简单的平均值同样好或更好。这符合这个问题的典型结果:https://otexts.com/fpp2/combinations.html
因此,在尝试根据以前的表现选择特定模型或使用加权平均值来尝试更高级之前,请考虑对两个模型进行简单平均。
如果您想继续进行某种 selection/weighted 平均,请尝试查看 R 中的 FFORMA 包:https://github.com/pmontman/fforma
我还没有尝试过特定的包,但在我使用原始 m4metalearning 包的测试中看到了有希望的结果。
我使用 forecast
包预测变量 Y
的每日时间序列,使用其滞后值和外部参数 X
的时间序列。我发现 nnetar
模型(NARX 模型)在整体性能方面是最好的。然而,尽管我尝试了各种参数调整,但我无法很好地预测时间序列的峰值。
然后我提取了 Y
的峰值(高于阈值)(当然这不再是常规时间序列)和相应的 X
值并尝试拟合回归模型(注意:不是自回归模型)使用 carat
包中的各种模型。我发现仅使用 X
值的 brnn
(双向递归神经网络)模型对峰值的预测优于同时使用滞后值和 X 值的 nnetar
。
现在我的问题是如何从这里开始创建这两个模型的样本(即每当使用 brnn
回归模型(或任何其他回归模型)的预测更好时我想替换预测使用 nnetar
并继续前进——我最关心的是峰值)?这是常用的方法吗?
与其尝试选择一个在任何时候都更好的模型,通常最好对模型进行平均,以便包含尽可能多的个人观点。 在我参与的实验中,我们试图根据历史表现选择一个表现出色的模型,通常表明简单的平均值同样好或更好。这符合这个问题的典型结果:https://otexts.com/fpp2/combinations.html
因此,在尝试根据以前的表现选择特定模型或使用加权平均值来尝试更高级之前,请考虑对两个模型进行简单平均。
如果您想继续进行某种 selection/weighted 平均,请尝试查看 R 中的 FFORMA 包:https://github.com/pmontman/fforma 我还没有尝试过特定的包,但在我使用原始 m4metalearning 包的测试中看到了有希望的结果。