当您想要霍尔特-温特斯而不是机器学习时
作者:Anais Dotis-Georgiou / 产品,用例,开发者
2019年2月21日
导航至
机器学习(ML)受到了很多关注,但其经典的前辈在时序空间中仍然非常强大。误差、趋势、季节性预测(ETS)、自回归积分移动平均(ARIMA)和霍尔特-温特斯是三种不仅非常流行而且也是优秀时序预测器的经典方法。
实际上,根据《统计和机器学习预测方法:关注点和前进方向》,ETS在一步预测中优于包括长短期记忆(LSTM)和循环神经网络(RNN)在内的其他几种机器学习方法。实际上,所有统计方法都有比机器学习方法更低的预测误差。
我的希望是,在完成这个三篇博客系列后,您将对霍尔特-温特斯的工作原理有深刻的概念性和数学理解。我关注霍尔特-温特斯有三个原因。首先,霍尔特-温特斯或三指数平滑是ETS的兄弟。如果您理解了霍尔特-温特斯,那么您将很容易理解上述方法中最强大的时间序列数据预测方法。其次,您可以直接在InfluxDB中使用霍尔特-温特斯。最后,InfluxData社区在GitHub问题459中请求解释霍尔特-温特斯。幸运的是,霍尔特-温特斯相对简单,并且与InfluxDB结合使用更为容易。
在本篇博客系列的当前部分,第一部分,我将向您展示
- 何时使用霍尔特-温特斯;
- 如何工作单指数平滑;
- 单指数平滑优化的概念概述;
- 额外内容:线性回归中残差平方和(RSS)优化的证明。
在第二部分中,我将向您展示
- 单指数平滑如何与三指数平滑/霍尔特-温特斯相关;
- 残差平方和(RSS)如何与均方根误差(RMSE)相关;
- 如何使用Nelder-Mead方法优化霍尔特-温特斯的RMSE。
在第三部分中,我将向您展示
- 如何使用InfluxDB内置的乘法霍尔特-温特斯函数生成时间序列数据的预测;
- 学习资源列表。
何时使用霍尔特-温特斯
在选择任何预测方法之前,您需要评估您的数据集特征。为了确定您的时间序列数据是否适合Holt-Winters,您需要确保您的数据
- 不是随机的。如果是随机的,那么它实际上是单指数平滑的好候选;
- 存在趋势;
- 存在季节性。换句话说,您的数据在固定的时间间隔内有模式。例如,如果您正在监控交通数据,您会在白天中间看到峰值,在夜间活动减少。在这种情况下,您的季节周期可能是一天。
单指数平滑的工作原理
在我们深入探讨Holt-Winters或三指数平滑之前,我将解释单指数平滑是如何工作的。 单指数平滑(SES) 是最简单的 指数平滑 方法(指数平滑是一种平滑时间序列数据的技巧,其中对过去的观测值分配指数递减的权重)。它基于 朴素方法。使用这种方法,预测值等于最后一个观测值,
难以相信朴素方法会想要以这样一个简单的模型获得认可,但它实际上在预测财务数据方面非常出色。此外,计算实际值与预测值之间的百分比差异可以是一个揭示季节性的好方法。
单指数平滑(SES)与朴素方法一致,即可以从过去预测未来值,但它更进一步地指出,最近发生的事情将对接下来发生的事情产生最大的影响。SES的预测只是一个指数加权的平均值。
其中 0 ? ? ? 1 是平滑参数。一个 平滑参数 将先前的平滑统计量与当前观测值联系起来,并用于产生两者的加权平均值。有多种方法可以确定最佳的平滑参数。然而,最小化RSS(残差平方和)可能是最流行的方法。(我们将在第二部分中介绍。)值得注意的是,如果 alpha = 1,那么SES将回到朴素方法。
以下表格显示了当 alpha = 0.2 时每个观测值的权重。权重呈指数递减,因此最近观测值对预测的影响最大。
此表显示了当 alpha = 0.2 时附加到观测值的权重。请注意,这些权重的总和趋近于1。更简单地说,这保证了您的预测与观测值处于相同的尺度。如果权重的总和等于1.5,则输出将比观测值大50%。权重的总和收敛到1是一种 几何收敛。
数学家喜欢重写公式。接下来,我们将看看如何得到SES的成分形式,因为它是最常用来表达Holt-Winters的形式。
我们简单地将 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)来找到最优的m和b。一旦我们找到了最优的m和b,我们就找到了回归线。这些相同的步骤也用于找到Holt-Winters的平滑参数。唯一的区别是,最小化RSS到回归线只是一个三维优化问题,证明有90%是代数,而找到Holt-Winters的平滑参数是多维的,需要很多微分方程。
为了了解如何最小化RSS,你需要知道它是什么。RSS定义为
它是我们数据点与最佳拟合线之间的误差度量。
让我们看看我们的数据
它是随机的,但我们可以找到回归线或最佳拟合线。为了做到这一点,我们画一条线并计算那条线的RSS。
我们通过取所有这些误差平方的总和来找到RSS。现在想象一下我们画了很多不同的线,并计算了数百次的RSS。现在RSS可以三维可视化为一个类似碗的东西,其中RSS的值取决于我们画的线。我们画的线由其斜率m和y截距b定义。
在这个碗的最底部是最佳斜率。我们对RSS取偏导数并将其设置为0,然后求解m和b。就是这样。线性回归优化很简单。找到单指数平滑的平滑参数是以相同的方式进行的。
额外:线性回归RSS优化的证明
如果你像我一样,你需要看到一些数学才能感到满意。“证明在于数学中,”正如我在那个博客中说的一样。如果你已经信服了或者你不喜欢数学,请跳过本节。它被着色以匹配博客中“单指数平滑优化的概念概述”部分的图形。
感谢你一直陪伴着我,并祝贺你走到了这里。我希望这篇教程能帮助你开始预测之旅。如果你有任何问题,请发表在社区网站上,或者给我们发推文@InfluxDB。你应得的这次脑力休息