Statistics Quest

Holt's linear trend and Holt–Winters seasonal methods

Exponential smoothing extended with a smoothed trend (Holt) and seasonal terms (Holt–Winters, additive or multiplicative), using the error-correction recursions of FPP3.

ℓt=α(yt−st−m)+(1−α)(ℓt−1+ϕbt−1)bt=β(ℓt−ℓt−1)+(1−β)ϕbt−1st=γ(yt−ℓt−1−ϕbt−1)+(1−γ)st−my^T+h∣T=ℓT+(ϕ+ϕ2+⋯+ϕh)bT+sT+h−m(k+1)\begin{aligned} \ell_t &= \alpha(y_t - s_{t-m}) + (1-\alpha)(\ell_{t-1} + \phi b_{t-1}) \\ b_t &= \beta(\ell_t - \ell_{t-1}) + (1-\beta)\phi b_{t-1} \\ s_t &= \gamma(y_t - \ell_{t-1} - \phi b_{t-1}) + (1-\gamma)s_{t-m} \\ \hat y_{T+h \given T} &= \ell_T + (\phi + \phi^2 + \dots + \phi^h)b_T + s_{T+h-m(k+1)} \end{aligned}
Additive Holt–Winters (drop s for Holt; phi = 1 when not damped)
ℓt,bt,st\ell_t, b_t, s_t
level, trend (slope per period) and seasonal state at time tt
α,β,γ\alpha, \beta, \gamma
smoothing parameters for level, trend and season, each in (0, 1)
ϕ\phi
damping parameter (0.8 to 0.98 when damped; 1 otherwise)
mm
seasonal period (e.g. 12 for monthly data)
kk
⌊(h−1)/m⌋\lfloor (h-1)/m \rfloor, so the forecast reuses the latest estimate of the matching season

When to use

  • Holt: a series with a trend but no seasonality. Damped Holt: the trend is expected to flatten (often more accurate for long horizons).
  • Holt–Winters additive: seasonal swings of roughly constant size. Multiplicative: swings proportional to the level (seasonal terms are factors: yt/st−my_t/s_{t-m} in the level update, forecasts multiplied by ss).

Assumptions

  • Equally spaced data with no gaps; at least two full seasons for the seasonal "simple" initialisation (ℓ0\ell_0 = mean of the first season, b0b_0 = average season-to-season change divided by mm, sj=yj+1−ℓ0s_j = y_{j+1} - \ell_0 or yj+1/ℓ0y_{j+1}/\ell_0). Without seasonality ℓ0=y1\ell_0 = y_1, b0=y2−y1b_0 = y_2 - y_1.
  • Parameters not supplied are chosen by minimising in-sample one-step SSE.

How to interpret

  • β controls how quickly the slope adapts; γ how quickly the seasonal pattern can change.
  • An undamped trend is extrapolated forever in a straight line — check whether that is plausible over the forecast horizon.

Common mistakes

  • Using additive seasonality when the seasonal amplitude grows with the level (or vice versa).
  • Long-horizon forecasts from an undamped trend presented without caveats.
  • Reading β here as the slope itself: it is a smoothing weight; the slope is btb_t.

Example

Holt on 10, 12, 15, 16, 19, 21 with α = 0.5, β = 0.3, ℓ0=10\ell_0 = 10, b0=2b_0 = 2: first update ℓ1=0.5⋅10+0.5(10+2)=11\ell_1 = 0.5 \cdot 10 + 0.5(10 + 2) = 11, b1=0.3(1)+0.7(2)=1.7b_1 = 0.3(1) + 0.7(2) = 1.7. Final ℓ6=20.66\ell_6 = 20.66, b6=2.00b_6 = 2.00; forecasts 22.65 and 24.65 for the next two periods.