207. Overview
207.1. Moving Averages
A family of forecasting methods that produce a forecast as a weighted average of past observations. Each method is a different choice of weights along a single axis: how much should past observations count?
207.1.1. The weighting-scheme axis
Two extremes and two interpolators. All five methods can be written in the form
— they only differ in how they choose the weights (and the window ).
| Method | Window | Weights | Formula | See |
| Naïve | 1 | (1, 0, 0, …) |
|
[naive.typ](naive.typ) |
| SMA |
|
[sma.typ](sma.typ) | ||
| WMA |
|
[wma.typ](wma.typ) | ||
| SES | all | (geometric decay) |
|
ETS(A,N,N) |
| Cumulative |
|
[cumulative.typ](cumulative.typ) |
207.1.2. Reading the axis
Two endpoints and two interpolators:
- Naïve is the case : only the most recent observation matters. Maximum responsiveness, no smoothing.
- Cumulative is the case : every observation since the start counts equally. Maximum smoothing, no responsiveness.
Between them, two interpolators:
- SMA and WMA: finite window of size , with explicit weights (equal for SMA, custom for WMA). Choosing trades responsiveness vs smoothing.
- SES: infinite window with geometrically-decaying weights. Choosing trades responsiveness (, looks like Naïve) vs smoothing (, looks like Cumulative).
The full ETS family (all 30 cells, see ets/) generalizes SES by adding trend and seasonal components on top of the level.
207.1.3. When to use each
| Method | Use when |
| Naïve | Random-walk demand (no structure to exploit). Useful baseline — every other method should beat it. |
| SMA | Smooth, slowly-changing demand without trend. Easy to explain to non-technical stakeholders. |
| WMA | Same as SMA, but you want to give more weight to recent observations without going to full geometric decay. |
| SES | Slowly-changing level + want infinite-history weighting. Most operational forecasting starts here. |
| Cumulative | Estimating a long-run mean (for stable processes) or as a slow-baseline in regime-detection. |
207.1.4. Comparing them on the same data
For a stationary series, SMA, WMA, SES, and Cumulative all converge to the same long-run mean — they only differ in how fast they react to changes. For a trending series, all of them lag behind (they’re averages — they smooth out the trend); use ETS or ARIMA if you have trend.
The next four files cover Naïve, SMA, WMA, and Cumulative; SES is in [ets/a-n-n.typ](../ets/a-n-n.typ) as ETS(A, N, N).