何时选择霍尔特-温特斯而非机器学习

导航至

机器学习 (ML) 备受推崇,但其经典前身仍然非常强大,尤其是在时序领域。误差、趋势、季节性预测 (ETS)、自回归积分滑动平均 (ARIMA) 和霍尔特-温特斯是三种经典方法,它们不仅非常流行,而且还是出色的时序预测器。

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

比较单步预测误差的条形图。摘自“统计和机器学习预测方法:关注点和前进方向”。

我希望在完成这个由三部分组成的博文系列后,您将对霍尔特-温特斯的工作原理有一个强大的概念和数学理解。我专注于霍尔特-温特斯有三个原因。首先,霍尔特-温特斯或三重指数平滑是 ETS 的同类。如果您理解了霍尔特-温特斯,那么您将很容易理解时序数据最强大的预测方法(在上述方法中)。其次,您可以开箱即用地将 霍尔特-温特斯 与 InfluxDB 一起使用。最后,InfluxData 社区已在此 Github 问题 459 中请求对霍尔特-温特斯进行解释。对我们来说幸运的是,霍尔特-温特斯相当简单,并且将其与 InfluxDB 一起应用甚至更容易。

在本篇博文系列的第一部分中,我将向您展示:

  1. 何时使用霍尔特-温特斯;
  2. 指数平滑的工作原理;
  3. 单指数平滑优化的概念概述;
  4. 额外内容:线性回归残差平方和 (RSS) 优化的证明。

第二部分中,我将向您展示:

  1. 单指数平滑如何与三重指数平滑/霍尔特-温特斯相关;
  2. RSS 如何与均方根误差 (RMSE) 相关;
  3. 如何使用 Nelder-Mead 方法优化霍尔特-温特斯的 RMSE。

第三部分中,我将向您展示:

  1. 如何使用 InfluxDB 的内置乘法霍尔特-温特斯函数在您的时序数据上生成预测;
  2. 学习资源列表。

何时使用霍尔特-温特斯

在选择任何预测方法之前,您需要评估数据集的特征。要确定您的时序数据是否是霍尔特-温特斯的良好候选对象,您需要确保您的数据:

  • 不是随机的。如果它是随机的,那么它实际上是单指数平滑的良好候选对象;
  • 具有趋势;
  • 具有季节性。换句话说,您的数据在有规律的间隔内具有模式。例如,如果您正在监控流量数据,您会在中午看到一个高峰,并在夜间看到活动减少。在这种情况下,您的季节周期可能是一天。

单指数平滑的工作原理

在我们深入研究霍尔特-温特斯或三重指数平滑之前,我将解释单指数平滑的工作原理。单指数平滑 (SES) 是最简单的指数平滑方法(指数平滑只是一种平滑时序数据的技术,其中指数递减的权重分配给过去的观测值)。它建立在朴素方法之上。使用此方法,预测值等于最后观察到的值,

很难相信朴素会想因如此简单的模型而受到赞誉,但事实证明它非常擅长预测金融数据。此外,取实际值和预测值之间的百分比差异可能是揭示季节性的好方法。

朴素方法有助于阐明我们每三天收入都会下降。

单指数平滑 (SES) 与朴素方法一致,即未来值可以从过去观察到的值中预测出来,但它更进一步说明,最近发生的事情对接下来将要发生的事情影响最大。SES 的预测只是一个指数加权平均值。

其中 0 ≤ α ≤ 1 是平滑参数。平滑参数将先前的平滑统计量与当前观测值相关联,并用于生成两者的加权平均值。有多种方法可以确定最佳平滑参数。但是,最小化 RSS(残差平方和)可能是最流行的。(我们将在第二部分介绍这一点。)同样值得注意的是,如果 alpha = 1,则 SES 减少回朴素方法。

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

此表显示了 alpha = 0.2 时附加到观测值的权重。请注意,这些权重的总和如何接近 1。更简单地说,这保证了您的预测与您的观测值在同一尺度上。如果权重的总和等于 1.5,则您的输出将比您的观测值大 50%。权重之和收敛到 1 是几何收敛

数学家喜欢重写公式。接下来,我们将看看我们如何得到 SES 的分量形式,因为它与最常用的表达霍尔特-温特斯的形式相同。

我们只是使用 l_(t) 来表示平滑方程。同时,l_(t-1) 表示之前的预测。通过这种方式,我们可以简洁地封装方程 (2) 的迭代性质。

但是,我们还有两个问题没有解决。第一个是我们不知道如何找到 alpha。其次,您可能对方程 (3) 进行了敏锐的观察。它是迭代的,那么在开始时,在时间 1,当我们有 l_nought 时会发生什么?简短的答案是我们最小化 RRS(残差平方和)以找到 alpha l_nought。详细答案在下一节中。

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

在本节中,我将解释如何找到回归线。这样做,您最终会得到一个很棒的数学类比,它可以帮助您理解如何为 SES 计算 alpha l_nought。在本节中,我仅在概念上设置了步骤。在本节之后,您可以找到通过最小化残差平方和 (RSS)进行线性回归优化的证明。

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

请注意它看起来多么像直线的点斜式:

方程 (4) 的优化是您实际优化以找到 SES 的平滑参数的内容。但是,在本节中,我们将方程 (5) 替换为方程 (4) 以简化目的。然后,我们通过最小化平方误差和 (RSS) 来找到最佳 mb。一旦我们找到最佳 m b,我们就找到了回归线。这些相同的步骤用于找到霍尔特-温特斯的平滑参数。唯一的区别是,最小化 RSS 到回归线只是一个 3-D 优化问题,并且证明是 90% 的代数,而找到霍尔特-温特斯的平滑参数是多维的,需要大量的微分方程。

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

它是我们的数据点与最佳拟合线之间误差的度量。

让我们看一下我们的数据:

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

我们通过取所有这些误差的平方和来找到 RSS。现在想象一下,我们画了一堆不同的线并计算了数百次 RSS。RSS 现在可以在 3-D 中可视化为一种碗,其中 RSS 的值取决于我们画的线。我们画的线由其斜率 m 和 y 轴截距 b 定义。

在这个碗的最底部是最佳斜率。我们取 RSS 的偏导数并将其设置为 0。然后我们求解 mb。这就是全部。线性回归优化非常简单。单指数平滑的平滑参数的查找方式相同。

额外内容:线性回归 RSS 优化的证明

如果您像我一样,您需要看到一些数学才能感到满意。“证明在于数学”,正如我在一篇博客中所说的那样。如果您已经确信或者您不喜欢数学,请跳过本节。它的颜色与本博客“单指数平滑优化的概念概述”部分中的图表相匹配。

 

感谢您的坚持,并祝贺您走到这一步。我希望本教程能帮助您开始您的预测之旅。如果您有任何问题,请在社区网站上发布,或在 Twitter 上 @InfluxDB 联系我们。您应该好好休息一下了。