在Holt-Winters中发现更多隐藏的宝石

导航至

欢迎回到关于Holt-Winters的三部分博客系列,探讨为什么它至今仍具有高度的相关性。要理解第二部分,我建议阅读第一部分,其中我们介绍了

  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相关

与SES类似,Holt-Winters可以作为强大的高效预测性维护技术,通过计算指数加权平均值来确定预测值——但这并不止于此。

正如Holt和Winters之前所写,如果你的数据具有趋势和季节性,那么你应该计算这些值的加权平均值,并将其纳入预测值中。

Holt-Winters的乘法方法如下

其中, l_(t) 是平滑方程,b_(t) 是斜率,s_(t) 是季节性。还有两个额外的平滑参数,分别是斜率和季节性的beta-stargamma。我们希望预测的点数用整数h表示。周期中的季节数(通常以年为单位,但也可能以月或天为单位,取决于你的时间尺度)用m表示,而k是一个索引,确保预测基于适当的季节。预测值y-hat是从考虑数据的三个特征中得出的,这就是三指数平滑得名的原因。但请注意,每个方程仍然与SES有相当多的相似之处,并且是指数加权平均值。

最后,方程(7)是乘法方法(还有一个加法Holt-Winters方法)。当季节周期是恒定时,使用加法方法。当季节周期按比例变化时,使用乘法方法,这通常与系列的水平(或斜率)成比例。这种比例性由季节性方程的以下部分表示

我完全同意Holt-Winters看起来有点复杂。然而,现在你可以想象我们只需要找到三个平滑参数而不是一个,还有一些更多的初始值。这种优化与我们的线性回归优化方式相同。唯一的区别是我们不能仅仅通过求偏导数来找到平滑因子;相反,我们将使用Nelder-Mead方法。而不是优化均方误差(RSS),我们将优化均方根误差(RSME)。“为什么?”你可能想知道?

均方误差(RSS)与均方根误差(RMSE)的关系

RMSE主要用于两个主要原因:1)它与尺度有关,2)它是归一化的。RMSE与尺度有关,因为误差是以与y_(t)相同的单位表示的。由于误差处于同一尺度,因此它们具有直观的意义。相比之下,在RSS中,误差是平方的。RMSE也是归一化的,而SSE则更不稳定,并依赖于样本大小。

提醒一下,RSS看起来是这样的

而RMSE仅仅是

换句话说,RMSE是RSS的平方除以自由度。

如何使用Nelder-Mead方法优化Holt-Winters中的RMSE

还记得我们为最小化RSS制作的那个碗吗?为了找到一个平滑参数(alpha)和一个初始值(l_nought)?现在我们还需要找到另外两个平滑参数(beta-star和gamma)以及另一个初始值(b_nought)。我们的优化已经从三维问题演变为六维问题。我们可能需要执行一些相当复杂的微分方程来解决它。我们也不再有一个漂亮的碗。既有局部最小值,也有全局最小值。因此,我们不能仅仅将偏导数设为0来求解这些参数。相反,我们必须使用更复杂的方法:Nelder-Mead方法。Nelder-Mead是一种数值方法,是一个近似、一个数学工具或解决困难数学问题的捷径。

 

Nelder-Mead方法不是一个真正的全局优化算法。然而,它对于没有许多局部最小值的问题,如我们的问题,效果相当好。它通过在空间中放置一个多面体。这个多面体就像一个微小的阿米巴或动画球体。然而,它只能向下移动。它在每个方向上稍微拉伸一点,以确定下山的地方。一旦找到它,它就稍微向下移动。它重复这个过程,直到不能再移动。在这个时候,多面体“快乐”,我们找到了最小值。多面体的形状和位置由方法确定。多面体向下摆动的动作只是通过一系列应用于它的for循环操作来实现的,即迭代。使用数值方法进行优化的好处是,我们可以通过使用简单的数学而不是尝试执行昂贵且复杂的代数计算来找到非常好的近似值。

一旦我们找到了最小值,那么我们就找到了平滑参数和初始值。我们在3个方程中有了所有缺失的部件,我们可以使用Holt-Winters进行预测。

我希望这篇教程能帮助你开始你的预测之旅。如果你有任何问题,请将它们发布在社区网站上,或者给我们@InfluxDB发推文。像往常一样,这里是一个大脑休息: