集成时间序列模型

机器算法验证 时间序列 预测 有马 集成学习 指数平滑
2022-01-20 11:49:36

我需要自动化时间序列预测,而且我事先不知道这些序列的特征(季节性、趋势、噪声等)。

我的目标不是为每个系列获得最好的模型,而是避免非常糟糕的模型。换句话说,每次出现小错误不是问题,但偶尔出现大错误是问题。

我想我可以通过结合使用不同技术计算的模型来实现这一点。

也就是说,虽然 ARIMA 是特定系列的最佳方法,但它可能不是另一个系列的最佳方法;指数平滑也是如此。

但是,如果我将每种技术中的一个模型结合起来,即使一个模型不太好,另一个模型也会使估计值更接近实际值。

众所周知,ARIMA 更适用于长期表现良好的系列,而指数平滑则适用于短期嘈杂系列。

  • 我的想法是将两种技术生成的模型结合起来,以获得更可靠的预测,这有意义吗?

可能有很多方法可以组合这些模型。

  • 如果这是一个好方法,我应该如何结合它们?

一个简单的预测平均值是一种选择,但如果我根据模型的某些优度度量对平均值进行加权,也许我可以获得更好的预测。

  • 组合模型时如何处理方差?
3个回答

结合预测是一个绝妙的主意。(我认为可以毫不夸张地说,这是学术预测者同意的少数几件事之一。)

不久前,我写了一篇论文,研究了将预测权重组合在一起的不同方法:http ://www.sciencedirect.com/science/article/pii/S0169207010001032基本上,使用(Akaike)权重并不能始终如一地改进组合超过简单或修剪/增减均值或中位数,因此我个人会在实施可能不会产生明确收益的复杂程序之前三思而后行(但请回想一下,根据信息标准,组合始终优于选择单一方法)。当然,这可能取决于您拥有的特定时间序列。

我在上面的论文中查看了组合预测区间,但没有考虑组合方差。我似乎记得不久前在IJF上发表过一篇关于此重点的论文,因此您可能想通过 IJF 的过刊搜索“组合”或“组合”。

其他几篇研究组合预测的论文在这里(从 1989 年开始,但是是一篇评论)这里这里(也关注密度)这里这里. 其中许多人指出,为什么预测组合经常优于单个选定模型的原因仍然知之甚少。倒数第二篇论文是关于 M3 预测竞赛的;他们的主要发现之一是(第 458 页上的数字 (3))“平均而言,各种方法组合的准确性优于被组合的特定方法,并且与其他方法相比表现良好。” 这些论文中的最后一篇发现,组合不一定比单个模型表现更好,但它们可以大大降低灾难性故障的风险(这是您的目标之一)。更多的文献应该很容易在International Journal of Forecasting , the Journal of Forecasting中找到以及计量经济学或供应链文献中更具体的应用。

为什么不进一步说明呢?我认为您生产的任何一种模型都不会比特定选择更好或足够好。

话虽如此,如果您可以将选择范围缩小到可以测试的范围内,并且数据输入可以标准化,那么为什么不在 R 中编写自动化测试程序呢?

假设您决定您的数据将落在由五个模型和一个“后备”估计的范围内。假设您可以通过不同的测试来表征输入。然后继续编写一个 R(或类似的程序)算法来为您运行它。如果您可以根据测试数据生成要运行哪个模型的流程图,即如果决策树的任何点是二元的,则此方法有效。

如果这不是一个选项,因为决策可能不是二元的,我建议您实施基于适用测试的评级系统,并通过您的网格运行一些“极端情况”模拟数据,看看结果是否是您正在寻找的结果。

您显然可以将这些东西结合起来,例如测试非平稳性可能会给出明确的是-否,而其他属性可能会落入多重共线性等范围内。
你可以先在纸上画出来,然后构建它,用你期望的已知分布来模拟它。

然后在每次新数据到达时运行 R 程序。我认为没有必要将几个模型与您最可能拥有的计算能力结合起来。

有一个很好且简单的公式可以组合两种预测方法,您只需将第一个乘以 a 和另一个乘以 (1 - a) 对它们进行加权,其中 a 是通过最小化组合预测的方差来找到的。正如您知道两种预测方法的误差一样,您可以计算出组合的误差,这取决于“a”。当每种方法的平均值 = 0 时,计算很简单。对于组合超过 2 种方法,公式仍然“简单”,因为您可以“手动”分析计算,或者也使用 EXCEL 中的 Solver 选项