Skip to content

Exponential smoothing

Forecast recursively with simple exponential smoothing, distinguish forecasts from updated levels, and see how initialisation, trend and seasonal extensions change the calculation.

Exponential smoothing is a family of forecasting methods that recursively updates estimates of a time series’ level, trend or seasonal pattern as observations arrive. Its simplest form gives a quant a transparent baseline: forecast the next observation from the current level, then adjust that level by a fraction of the forecast error.

Two numbers with different information dates

In simple exponential smoothing (SES), let yty_t be the observation and ℓt\ell_t the level after observing it. With smoothing weight 0≤α≤10\leq\alpha\leq1,
y^t∣t−1=ℓt−1,ℓt=αyt+(1−α)ℓt−1=ℓt−1+α(yt−ℓt−1).\hat y_{t|t-1}=\ell_{t-1},\qquad \ell_t=\alpha y_t+(1-\alpha)\ell_{t-1} =\ell_{t-1}+\alpha(y_t-\ell_{t-1}).
The first number is available before yty_t; the second incorporates it. SES has no trend or seasonal component. From a fixed origin TT, every future point forecast is y^T+h∣T=ℓT\hat y_{T+h|T}=\ell_T for h≥1h\geq1. Flat point forecasts do not imply certain future outcomes. These mechanics are set out in Hyndman and Athanasopoulos, §8.1.
Take the fictional observations 10, 14, 12, 20 index points, set α=0.25\alpha=0.25, and initialise ℓ1=y1=10\ell_1=y_1=10. Begin updating at period 2:
ℓ2=0.25(14)+0.75(10)=11,ℓ3=0.25(12)+0.75(11)=11.25,ℓ4=0.25(20)+0.75(11.25)=13.4375.\begin{aligned} \ell_2&=0.25(14)+0.75(10)=11,\\ \ell_3&=0.25(12)+0.75(11)=11.25,\\ \ell_4&=0.25(20)+0.75(11.25)=13.4375. \end{aligned}
The forecast for period 4 was 11.25. Its error is 20−11.25=8.7520-11.25=8.75 points; only then does the level rise by 0.25(8.75)=2.18750.25(8.75)=2.1875 points. 13.4375 is the forecast for period 5. Scoring it against period 4 would give the forecasting procedure information from its own target.
Fictional observations 10, 14, 12 and 20 index points produce levels 10, 11, 11.25 and 13.4375 with alpha 0.25. Period 4 was forecast at 11.25 before observing 20; 13.4375 forecasts period 5.
Fictional observations 10, 14, 12 and 20 index points produce levels 10, 11, 11.25 and 13.4375 with alpha 0.25. Period 4 was forecast at 11.25 before observing 20; 13.4375 forecasts period 5.
The forecast uses the previous level. The updated level becomes available only after the target observation arrives.
Initialising at the first observation is a stated convention for this example, not a forecast made before period 1. If parameters or initial states are fitted using a training sample, its one-step fitted values also depend on that estimation sample. An honest later test must respect both the state-update clock and the parameter-selection clock. The Forecast Evaluation lesson develops chronological testing and loss comparisons; its preview is public and the full lesson requires membership.

“Exponential” includes an initialisation remainder

Unroll our particular recursion:

ℓ4=0.25y4+0.1875y3+0.140625y2+0.421875ℓ1.\ell_4=0.25y_4+0.1875y_3+0.140625y_2+0.421875\ell_1.
These weights add to one. Because ℓ1=10\ell_1=10, the last term contributes 4.21875 points, almost a third of the final level. It would be a material error to drop it after only three updates.

More generally, with this initialisation at period 1,

ℓt=∑j=0t−2α(1−α)jyt−j+(1−α)t−1ℓ1,t≥2.\ell_t=\sum_{j=0}^{t-2}\alpha(1-\alpha)^j y_{t-j} +(1-\alpha)^{t-1}\ell_1,\qquad t\geq2.
The geometrically declining observation weights connect SES to time-decay weighting. The finite recursion retains the initial state’s remaining weight; an infinite-history expression suppresses that boundary. FPP, second edition, §7.1 presents the corresponding finite expansion using an initial state at time 0.
At period 4, the weights are 25% on observation 20, 18.75% on observation 12, 14.0625% on observation 14, and 42.1875% on the initial level 10. Their contributions sum to 13.4375 index points.
At period 4, the weights are 25% on observation 20, 18.75% on observation 12, 14.0625% on observation 14, and 42.1875% on the initial level 10. Their contributions sum to 13.4375 index points.
The initial state carries the history before the recursive updates begin; it is not assigned the same coefficient as an ordinary later observation.

Larger α\alpha makes the level react more strongly to new information; smaller α\alpha retains more of the previous state. At α=1\alpha=1, the next forecast is the latest observation; at α=0\alpha=0, the level never updates. No coefficient is universally best: evaluate the chosen horizon and loss on later data.

Choose the component and the target

SES smooths a level. Holt’s linear method adds a trend state btb_t, giving forecasts ℓt+hbt\ell_t+hb_t; a damped trend attenuates its extrapolation. Holt–Winters adds seasonal states. Additive seasonality describes roughly constant-sized seasonal movements, whereas multiplicative seasonality describes movements proportional to the level. Changing α\alpha alone cannot add these missing components. See FPP, second edition, §§7.2–7.3.
An EWMA volatility forecast instead updates a variance using squared return shocks. Its decay parameter often weights the old state, so λ\lambda can play the role of 1−α1-\alpha. Similar recursion does not make a smoothed price level a volatility estimate—or establish profitable price predictability.

Practice: freeze the forecast

A fictional series has current level 8 points and α=0.4\alpha=0.4. Before the next observation arrives, you issue its one-step forecast. The observation is then 13 points. What was the issued forecast, and what forecast can you issue for the following period?
Answer. The issued forecast was 8. The error is 13−8=513-8=5, so the new level is 8+0.4(5)=108+0.4(5)=10 points. The following period’s forecast is 10. Reporting 10 as the earlier forecast would use the later observation.

Sources

Last updated
  • forecasting
  • time series
  • smoothing
  • initialisation
← Back to the glossaryBack to top ↑