当你想用Holt-Winters代替机器学习

机器学习(ML)被大肆宣传,但它的经典前辈仍然非常强大,特别是在时间序列领域。错误,趋势,季节性预测(ETS),自回归综合移动平均(ARIMA)和Holt-Winters是三种经典方法,它们不仅非常流行,而且是出色的时间序列预测器。

事实上,根据统计和机器学习预测方法:关注的问题和前进的方向在一步预测方面,ETS优于其他几种ML方法,包括长短期记忆(LSTM)和循环神经网络(RNN)。实际上,所有的统计方法都比ML方法有更低的预测误差。

一步预测误差比较柱状图。取自"统计和机器学习预测方法:关注的问题和前进的方向."

我希望在完成这个由三部分组成的系列博客文章之后,您将对Holt-Winters如何工作有一个强有力的概念和数学理解。我关注霍尔特-温特斯案有三个原因。首先,Holt-Winters或三重指数平滑是ETS的兄弟。如果你理解了Holt-Winters,那么你就很容易理解时间序列数据最强大的预测方法(在上述方法中)。其次,你可以使用Holt-Winters使用InfluxDB开箱即用。最后,InfluxData雷竞技能赚到钱么社区要求对Holt-Winters进行解释Github第459期.幸运的是,Holt-Winters相当简单,在InfluxDB中应用它甚至更容易。

在这个博客系列的第一部分,我将向你展示:

  1. 何时使用Holt-Winters;
  2. 单指数平滑工作原理;
  3. 单指数平滑优化的概念概述
  4. 附加:线性回归残差平方和(RSS)优化的证明。

第二部分,我会告诉你:

  1. 单指数平滑与三指数平滑/Holt-Winters的关系
  2. RSS与均方根误差(RMSE)的关系
  3. 如何使用Nelder-Mead方法优化Holt-Winters的RMSE。

第三部分,我会告诉你:

  1. 如何使用InfluxDB内置的乘法Holt-Winters函数对时间序列数据生成预测;
  2. 学习资源列表。

什么时候使用Holt-Winters

在选择任何预测方法之前,您需要评估数据集的特征。为了确定你的时间序列数据是否适合霍尔特-温特斯模型,你需要确保你的数据:

  • 不是随机.如果它是随机的,那么它实际上是单指数平滑的一个很好的候选者;
  • 有趋势;
  • 季节性.换句话说,您的数据具有定期的模式。例如,如果您正在监控交通数据,您将看到白天的高峰和夜间的活动减少。在这种情况下,你的季节周期可能是一天。

单指数平滑如何工作

在我们深入Holt-Winters或三重指数平滑之前,我将解释单指数平滑是如何工作的。单指数平滑(SES)是最简单的指数平滑法方法(指数平滑只是一种平滑时间序列数据的技术,其中对过去的观测值分配指数递减的权重)。它是建立在天真的方法.用这种方法,预测值等于最后的观测值,

很难相信Naïve会因为这样一个简单的模型而受到赞誉,但事实证明,它在预测金融数据方面相当出色。此外,计算实际值和预测值之间的百分比差异也是发现季节性的好方法。

naïve方法有助于说明我们的收益每三天就会减少一次。

单指数平滑(SES)与Naïve方法一致,即未来的值可以通过观察过去来预测,但它更进一步地说,最近发生的事情将对接下来发生的事情产生最大的影响。SES的预测只是指数加权平均值。

哪里是0 ???1为平滑参数。一个平滑参数将先前平滑的统计数据与当前观测数据联系起来,并用于产生两者的加权平均值。确定最佳平滑参数的方法有很多种。然而,最小化误差平方和(RSS)可能是最受欢迎的。(我们将在第二部分中讨论这个问题。)同样值得注意的是,如果α= 1,则SES还原回Naïve方法。

下表显示了an的每个观察值的权重α= 0.2。权重呈指数下降,因此最近的观测结果对预测的影响最大。

此表显示了附加到观测值的权重α= 0.2。注意这些权重的和是如何接近1的。更简单地说,这保证了你的预测与你的观察是相同的。如果权重之和等于1.5,那么输出值将比观察值大50%。收敛到1的权重之和是a几何收敛性

数学家喜欢重写公式。接下来,我们将看看如何获得SES的Component形式,因为它是最常用于表示Holt-Winters的相同形式。

我们简单地使用l_ (t)表示平滑方程。与此同时,l_ (t - 1)表示以前的预测。通过这种方式,我们得到了简洁地封装式(2)的迭代性质。

然而,有两点我们还没有解决。第一个是我们不知道如何找到α.其次,你可能对式(3)有一个敏锐的观察。它是迭代的,所以在一开始发生了什么,在时间1,当我们l_nought?简单的答案是,我们最小化误差平方和(RRS)来找到两者α而且l_nought.长的答案在下一节中。

单指数平滑优化的概念概述

在本节中,我将解释如何找到回归线.在这样做的过程中,你最终会得到一个很好的数学类比,帮助你理解如何做到这一点α而且l_nought为SES计算。在本节中,我只是在概念上设置了这些步骤。在本节之后,您可以通过最小化的值来找到线性回归优化的证明误差平方和(RSS)

让我们看一下时间1的平滑方程:

注意它看起来很像直线的点斜式:

Eq.(4)的优化是你实际要优化的,如果你想找到SES的平滑参数。但是,在本节中,为了简化起见,我们用式(5)代替式(4)。然后我们找到最优而且b通过最小化误差平方和(RSS)。一旦我们找到了最优而且b,我们找到了回归线。这些相同的步骤用于寻找Holt-Winters的平滑参数。唯一的区别是,最小化到回归线的RSS只是一个三维优化问题,证明是90%的代数,而寻找Holt-Winters的平滑参数是多维的,需要很多微分方程。

为了理解如何最小化RSS,您需要知道它是什么。RSS的定义如下:

它是对数据点和最佳拟合线之间误差的测量。

让我们来看看我们的数据:

这是随机的,但我们可以找到一条回归线或最佳拟合线。为此,我们画一条线并为这条线找到RSS。

我们用所有误差的平方和来求RSS。现在想象一下,我们画了一堆不同的线,计算了数百次RSS。RSS现在可以在3d中可视化为一个碗,其中RSS的值取决于我们所画的线。我们画的这条线由它的斜率决定,, y截距,b

在这个碗的最底部是最佳坡度。我们求RSS的偏导并令它等于0。然后解出而且b.这就是它的全部。线性回归优化非常简单。寻找单指数平滑的平滑参数是用同样的方法完成的。

附:线性回归RSS优化的证明

如果你和我一样,你需要看一些数学才能感到满足。正如我在那篇博客中所说的那样:“数学是证明。”如果你已经被说服了,或者你不喜欢数学,跳过这一部分。它的颜色与本博客“单指数平滑优化的概念概述”部分中的图表相匹配。

谢谢你一直支持我,祝贺你能走到今天。我希望本教程能帮助您开始预测之旅。如果你有任何问题,请张贴在社区网站或者发推给我们@InfluxDB。你应该好好休息一下: