ARTICLE

Holt-Winters

Holt-Winters方法 (Holt-Winters Method) Holt-Winters方法,也称为三重指数平滑(Triple Exponential Smoothing),是时间序列分析中用于预测同时含有趋势和季节性成分的数据的核心方法。该方法由Charles C. Holt于1957年提出趋势平滑框架,Peter R. Winters于1960

浏览 0 更新 2025-11-08

Holt-Winters方法 (Holt-Winters Method)

Holt-Winters方法,也称为三重指数平滑(Triple Exponential Smoothing),是时间序列分析中用于预测同时含有趋势季节性成分的数据的核心方法。该方法由Charles C. Holt于1957年提出趋势平滑框架,Peter R. Winters于1960年将其扩展至含季节性的情形,由此得名。与仅能捕捉水平或水平加趋势的简单指数平滑和Holt线性趋势方法不同,Holt-Winters方法通过三组递推方程分别估计序列的水平(Level)、趋势(Trend)和季节因子(Seasonal Component),因而被归类为三重指数平滑。该方法在零售需求预测、能源负荷调度、旅游客流规划和库存管理等领域有广泛应用,至今仍是季节性预测的基准模型。

两种基本形式:加法与乘法

Holt-Winters方法根据季节性波动是否与序列水平成比例,分为加法模型乘法模型。设时间序列为 yty_t,周期长度为 mm(如月度数据 m=12m=12,季度数据 m=4m=4),三个平滑参数 α,β,γ(0,1)\alpha, \beta, \gamma \in (0, 1) 分别控制水平、趋势和季节因子的更新速度。

加法Holt-Winters适用于季节波动幅度不随序列水平变化的情形。其递推方程为:

t=α(ytstm)+(1α)(t1+bt1)bt=β(tt1)+(1β)bt1st=γ(ytt1bt1)+(1γ)stm\begin{aligned} \ell_t &= \alpha (y_t - s_{t-m}) + (1-\alpha)(\ell_{t-1} + b_{t-1}) \\ b_t &= \beta (\ell_t - \ell_{t-1}) + (1-\beta) b_{t-1} \\ s_t &= \gamma (y_t - \ell_{t-1} - b_{t-1}) + (1-\gamma) s_{t-m} \end{aligned}

其中 t\ell_t 为时刻 tt 的水平估计,btb_t 为趋势(斜率)估计,sts_t 为季节因子。向前 hh 步的点预测为:

y^t+ht=t+hbt+st+hm(k+1)\hat{y}_{t+h|t} = \ell_t + h \cdot b_t + s_{t+h-m(k+1)}

其中 kk 为使得 t+hm(k+1)t+h-m(k+1) 落入可用季节索引范围内的最小非负整数。

乘法Holt-Winters适用于季节波动幅度与序列水平成比例的情形(如销售额在旺季的绝对波动远大于淡季)。其递推方程为:

t=αytstm+(1α)(t1+bt1)bt=β(tt1)+(1β)bt1st=γytt1+bt1+(1γ)stm\begin{aligned} \ell_t &= \alpha \frac{y_t}{s_{t-m}} + (1-\alpha)(\ell_{t-1} + b_{t-1}) \\ b_t &= \beta (\ell_t - \ell_{t-1}) + (1-\beta) b_{t-1} \\ s_t &= \gamma \frac{y_t}{\ell_{t-1} + b_{t-1}} + (1-\gamma) s_{t-m} \end{aligned}

向前 hh 步预测为:

y^t+ht=(t+hbt)st+hm(k+1)\hat{y}_{t+h|t} = (\ell_t + h \cdot b_t) \cdot s_{t+h-m(k+1)}

加法模型中季节因子的量纲与原始数据一致,通常满足 i=1msi0\sum_{i=1}^m s_i \approx 0;乘法模型中季节因子围绕1波动,通常满足 i=1msim\sum_{i=1}^m s_i \approx m

参数估计与初始化

三个平滑参数 α,β,γ\alpha, \beta, \gamma 通常通过最小化一步预测误差平方和(SSE)来估计,即:

(α^,β^,γ^)=argmint=m+1T(yty^tt1)2(\hat{\alpha}, \hat{\beta}, \hat{\gamma}) = \arg\min \sum_{t=m+1}^{T} (y_t - \hat{y}_{t|t-1})^2

优化可采用L-BFGS等数值算法。初始值 0,b0,s1m,,s0\ell_0, b_0, s_{1-m}, \ldots, s_0 对较短序列影响显著:水平初始值可取前几个完整周期的均值;趋势初始值可用前两个周期均值之差的线性斜率;季节因子初始值可取各期偏离周期均值的平均偏差(加法)或比例(乘法)。

发展、局限与关系

Holt-Winters方法的主要优势在于:概念直观、计算简便,仅需三个参数即可同时捕捉趋势和季节性;在M-Competition等大规模预测竞赛中,其预测精度始终位于顶尖水平。主要局限包括:假定季节模式恒定不变,难以适应季节形态随时间漂移的情形;参数被限制在 [0,1][0,1] 区间,对快速变化的序列可能反应迟钝;点预测的预测区间推导依赖正态性假设,而实际数据通常为厚尾分布。

为应对这些局限,学者提出了若干扩展:Hyndman等人的阻尼趋势(Damped Trend)变体可防止长期预测中趋势的无限外推;Taylor的双季节Holt-Winters用于处理高频数据中的多重季节周期(如小时级电力负荷数据中的日周期和周期);Ord和Koehler提出的状态空间框架将指数平滑族统一表述为状态空间模型,并据此推导出严格的预测区间。

在指数平滑方法族中,Holt-Winters是最一般的形式:当 γ=0\gamma=0 且无季节分量时退化为Holt线性趋势方法;当 β=γ=0\beta=\gamma=0 时退化为简单指数平滑(Simple Exponential Smoothing)。与ARIMA模型SARIMA(季节性ARIMA)相比,Holt-Winters属于非参数方法:它不依赖平稳性假设,无需识别自相关结构,也无需假设数据的生成分布。然而,SARIMA在统计推断(如检验季节性的显著性)方面更具优势。实践中,两种方法常被并列使用,并取在验证集上表现更优者,或通过组合预测综合两者信息。

典型应用场景

Holt-Winters方法在商业和公共部门预测中有着丰富的应用实例。在零售与快消品领域,月度销售额数据通常呈现年末旺季、年初淡季的规律,乘法Holt-Winters能够自然地捕捉旺季波动更大的特征。在能源行业,电力负荷数据显示出显著的日周期和年周期,加法Holt-Winters常用于短期负荷调度预测,为电网安全运行提供决策支持。在旅游业与交通规划中,航空客流量和酒店入住率受假期和季节气候驱动,Holt-Winters能够分解出稳定的季节模式并据此进行运力安排。此外,在公共卫生领域,流感样病例的周度监测数据具有明显的冬春高发节律,该方法被用于传染病暴发的早期预警系统,辅助公共卫生资源的动态调配。

值得注意的是,当序列的季节模式随时间发生结构性变化——例如电商促销改变了传统零售的季节节奏,或气候变化导致供暖需求高峰时段偏移——标准Holt-Winters的恒定季节假设开始失效。此时可考虑引入随时间缓慢演化的季节因子(如在状态空间框架中允许季节项服从随机游走),或转而采用TBATS等能够容纳多重季节性和时变季节模式的现代方法。