指数平滑预测公式

2025年6月19日 | 阅读 7 分钟

指数平滑是一种统计估计算法,用于预测时间序列数据。它的特点是指数递减地分配过去观测值的权重,因此近期观测值比旧观测值更受重视,这使其成为预测包含趋势和季节性成分数据的有效方法。

平滑方法可以减少时间序列确定性部分可能显示的随机波动的影响。即使是时间序列的新观测值,也可以通过平滑方法进行预测。采用平滑方法的算法可以预测具有趋势或不具有趋势的时间序列数据。如果我们设计一个使用平滑方法的算法来预测具有趋势的时间序列观测值,那么我们就不应该将此算法用于预测缺乏趋势的时间序列,反之亦然。

现在,为了理解每种方法的公式,我们将采用实践方法。

导入库

代码

导入数据集

代码

输出

Exponential Smoothing Forecast Formula

代码

输出

Exponential Smoothing Forecast Formula

让我们检查一些缺失值。

代码

输出

 
5   

代码

输出

 
0   

让我们可视化图表。

代码

输出

Exponential Smoothing Forecast Formula

我们将分割数据集。

代码

输出

 
(479, 49)   

现在我们将进行时间序列结构分析。

代码

输出

Exponential Smoothing Forecast Formula

单指数平滑

指数平滑,简称 SES,也称为简单指数平滑。它是一种适用于不包含趋势和季节性的单变量数据进行 时间序列预测 的方法。它只需要一个参数,通常命名为 alpha。有时它被称为平滑因子或系数。

它定义了过去观测值的影响衰减的速度。实际上,alpha 的值很可能在 0 到 1 之间(不包括 1)。较大的值意味着模型几乎将所有注意力都集中在最近的观测值上;较小的值则在生成预测时会捕捉更多的历史数据。

指数平滑的公式可以表示如下:

Exponential Smoothing Forecast Formula

公式的组成部分

  • St:时间 t 的平滑值(预测值)。
  • Xt:时间 t 的真实记录值。
  • St-1:时间 t-1 的平滑值(前一次预测值)。
  • a:平滑因子或平滑常数,0<a<=1。

代码

输出

Exponential Smoothing Forecast Formula

现在我们将调整我们的模型。

代码

输出

Exponential Smoothing Forecast Formula

双指数平滑

该算法使我们能够通过时间序列预测新观测值。该算法使用平滑方法。我们使用“双指数平滑”算法处理具有趋势的时间序列数据。对于具有趋势的时间序列,“指数平滑”效果不佳。在这里,我们可以学习指数平滑算法。通过在原有平滑常数之上添加一个新的平滑常数“gamma”,这个问题得到了解决。该算法的数学模型是:

Exponential Smoothing Forecast Formula

其中“alpha”和“gamma”是平滑常数,取值范围在 0 到 1 之间。“P_t” - 时间 t 的预测值,“X_t” - 时间 t 的时间序列观测值,“b_t” - 时间 t 的趋势值。此时,我们有两个问题需要解决;

选择 P_1 值和 b_1 值;

选择 alpha 和 gamma 值;

对于第一个问题,我们可以将 P_1 取为第一个观测值,而 b_1 有两种典型选择:

  • 我们将其取为第二个观测值减去第一个观测值(b_1 = x_2 - x_1);
  • 我们将它取为最后一个观测值减去第一个观测值,所有值除以观测值的总数减 1(b_1 = (x_n - x_1)/(n - 1))。
Exponential Smoothing Forecast Formula

经典上,具有加性趋势的双指数平滑被称为 Holt 线性趋势模型,以该方法的开发者 Charles Holt 的名字命名。

  • 加性趋势:使用线性趋势的双指数平滑。
  • 乘性趋势:具有指数趋势的双指数平滑。

趋势在更长期的预测中可能会持续不切实际。因此,在一段时间内对趋势进行衰减可能是有用的。

代码

输出

Exponential Smoothing Forecast Formula

现在我们将调整我们的模型。

代码

输出

Exponential Smoothing Forecast Formula

三指数平滑

三指数平滑,也称为 Holt-Winters 指数平滑,是指数平滑的一个重要扩展,用于处理单变量时间序列数据中的季节性。该方法以其开发者 Charles Holt 和 Peter Winters 的名字命名,他们引入了一个新参数 gamma (g),而 alpha 和 beta 是该方法的平滑因子。gamma 参数控制对季节性分量的影响,从而使模型能够更精确地捕捉数据模式。季节性可以是加性的,从而产生线性季节性变化,也可以是乘性的,从而产生指数季节性变化。这将允许该方法根据季节性变化进行适应,例如,使用加性季节性表示线性趋势,使用乘性季节性表示指数趋势。作为指数平滑最复杂的形式之一,三指数平滑方法可以自定义以创建其他更简单的形式,例如双指数平滑或单指数平滑,因此它足够强大和灵活,可以用于时间序列预测。

代码

输出

Exponential Smoothing Forecast Formula

现在我们将调整我们的模型。

代码

输出

Exponential Smoothing Forecast Formula

最终模型预测

代码

输出

Exponential Smoothing Forecast Formula

从一月到五月,根据预测,数值呈上升趋势。六月份的小幅下降也表明数据中存在季节性波动或周期性模式。Freq: MS 是月度频率的缩写,该模型已证明该频率保持一致。这些结果表明它倾向于同时考虑趋势和季节性行为来做出预测。

尽管预测直观,但需要通过诸如 平均绝对误差 或均方根误差等指标与实际值进行比较来建立其正确性,以证明模型的可靠性。