SARIMA and ETS
Seasonal structure, two statistically honest ways
SARIMA adds seasonal AR/MA/differencing terms to capture periodic patterns; ETS (error-trend-seasonality) models the components with smoothing instead. Choosing between them is a forecast-architecture decision.
What you will learn
- Write and interpret the SARIMA seasonal terms (P,D,Q,m)
- Understand ETS models from the smoothing recursion
- Choose SARIMA vs ETS from AIC and residual quality
What is this?
SARIMA extends ARIMA with seasonal autoregressive (P), seasonal differencing (D) and seasonal moving average (Q) terms at period m — SARIMA(p,d,q)(P,D,Q)_m — capturing repeating effects at fixed offsets. ETS (error, trend, seasonality) models both level and structure through exponential smoothing recurrences, with additive or multiplicative terms selected by information criteria and Box-Cox transforms. Both are classical families; SARIMA wins on rich irregular dynamics, ETS wins on simplicity and trend/season interactive forms.
Why do you need it?
- Plain ARIMA leaks seasonality into residuals — the pattern is memory, not noise.
- ETS handles seasonality with interpretable component weights and direct interval forecasts.
- Auto-selection (auto_arima, ETS selector via AIC) gives reproducible picks without hand-tweaking.
- They're the honest baselines ML forecasters must beat before adding complexity.
Mental model
Reading a tide chart vs sweeping a pendulum clock
SARIMA vs ETS
SARIMA explicitly models 'what happened this season vs last' with lagged terms — a tide chart built from lunar lags. ETS assumes the season pattern evolves smoothly, like a pendulum — track the amplitude, correct slowly. Both tell you the ocean; the physics they assume differs.
How it works
- SARIMA: add (P,D,Q)_m — seasonal differencing removes repeat-trend, seasonal AR multiplies the series by (1 − Φ₁B^m − ...).
- Seasonal order m = the cycle length (12 monthly, 7 daily/weekly).
- ETS: level, trend and seasonal equations update with smoothing parameters (α, β, γ), additive or multiplicative.
- Both are fit by maximum likelihood (SARIMA uses Kalman/state space internally; ETS matches a state-space likelihood).
- Select among candidates with AIC/BIC, then verify residual white noise and out-of-sample backtest.
SARIMA seasonal terms vs ETS component smoothing.
In production
- A retailer picks SARIMA(2,1,1)(1,1,1)_12 for monthly demand — 12-month seasonal effects matter more than deep AR memory.
- An energy scheduler uses Holt-Winters (ETS) for weekly load because the αβγ smoothing tracks slow seasonal drift.
- Both are compared each month by auto-selection, and the winner feeds safety-stock via its prediction intervals.
Best practices
- Set m from real cycles and confirm with spectral/ACF checks.
- Let auto_arima/AIC-driven ETS do the order search, but sanity-check by hand.
- Compare SARIMA vs ETS candidates on the same walk-forward backtest, not just in-sample AIC.
- Forecast intervals come from the fitted state space — never hack percentiles of one path.
Common mistakes
- Writing SARIMA with the wrong m (monthly data but m=4 'quarterly') and wondering at the residual spikes.
- Differencing both d and D aggressively, then overdifferencing (stationary field says immune).
- Fitting ETS additive when the series needs multiplicative seasonal — spikes blow up.
- Selecting purely on in-sample AIC and skipping the backtest where both fail differently.
Common issues
SARIMA 'explodes' the forecast (blows up)Roots near the unit circle after heavy differencing
Reduce d/D, stabilize with SARIMAX constraints or cap orders; verify characteristic roots inside the unit circle.
ETS and SARIMA disagree wildlyOne captured structure the other isn't (damping, seasonal drift)
Look at residual ACF both — the analysis that passes diagnostics wins the backtest.
Debugging tips
- Residual ACF spike at lag m → add seasonal MA(Q) term (or raise it).
- PACF spike at lag m → add seasonal AR(P).
- ETS forecast variance wrong → check the residual variance decomposition and Box-Cox choice.
- Turn summer factors stay 'constant' forever? The smoothing γ may be pinned to ~0 — season is fixed or data short.
Interview checkpoint
Hands-on lab
- Fit SARIMA(.,.,.)(1,1,1)_12 on monthly data
- Fit an ETS model with multiplicative season
- Compare on a future-only backtest window
SARIMA vs ETS on Seasonal Data
35 min · advanced
Quick quiz
In SARIMA(p,d,q)(P,D,Q)_12, the 12 means:
ETS can model multiplicative seasonality while SARIMA primarily uses differencing and linear lags.