SARIMA and Seasonal Models
An extension of ARIMA that adds a second set of autoregressive, differencing, and moving-average terms operating at the length of a repeating season — like 12 months or 4 quarters — so a model can capture both ordinary short-lag dynamics and recurring seasonal patterns at the same time.
Prerequisites: Stationarity, Autocorrelation and Serial Correlation
Retail sales spike every December, natural gas demand rises every winter, and quarterly earnings often show predictable patterns tied to the calendar. An ordinary ARIMA model, built to capture short-lag dependence (today relates to yesterday, or last week), completely misses this kind of structure — it has no notion that "12 months ago" is special in a way that "11 months ago" isn't. SARIMA (Seasonal ARIMA) fixes this by adding a second, parallel set of AR, differencing, and MA terms that operate specifically at the seasonal lag, so the model can capture both the ordinary short-run dynamics and the recurring seasonal pattern simultaneously.
An analogy: two clocks running at once
Think of a business with two overlapping rhythms: a fast one (this week versus last week — did we get a new client, was there a promotion) and a slow one (December versus every previous December). A model that only looks at the fast rhythm will keep getting fooled every holiday season, treating a predictable seasonal spike as if it were a surprising shock. SARIMA runs two clocks side by side: an ordinary ARIMA clock ticking at lag 1, 2, 3… for short-run dynamics, and a seasonal clock ticking at lag , , … (where is the season length, like 12 for monthly data) for the recurring pattern — and combines both into one forecast.
The model, one piece at a time
SARIMA is written . The lowercase are the ordinary, non-seasonal AR order, differencing order, and MA order — exactly as in plain ARIMA. The uppercase are the seasonal counterparts, applied at multiples of the seasonal period :
This looks dense, but each piece has a plain-English job: and are the familiar short-lag AR and MA polynomials; and are the same kind of polynomials but built from lags at , capturing "how does this January relate to last January, and the January before"; is ordinary differencing (removing a regular trend), and is seasonal differencing — subtracting the value from exactly one season ago, , which removes a recurring seasonal level shift the same way ordinary differencing removes a regular trend. In plain English: SARIMA models today's value as a combination of recent past values, recent past shocks, the same-season past values, and the same-season past shocks — letting a December be explained partly by November and partly by last December, at the same time.
Worked example 1: seasonal differencing by hand
Monthly retail sales (in $ millions) run 100, 102, 98, 250 (December spike), 103, 101… repeating a similar spike each December. Ordinary first differencing, , gives a huge +147 jump into December and a huge −147 drop right back out — the seasonal spike still dominates the differenced series, which is not stationary in any useful sense. Seasonal differencing at , , instead compares each December to last December: if this December is 250 and last December was 248, the seasonally differenced value is just +2 — small, because the predictable seasonal spike has been subtracted out entirely, leaving only the genuine year-over-year change.
Worked example 2: a SARIMA(1,0,0)(1,0,0)₁₂ forecast
Suppose a fitted model is (this specific combination is what a SARIMA(1,0,0)(1,0,0)₁₂ model expands to, since the seasonal and non-seasonal AR terms multiply together). Given , (last December), and (last November), the forecast is . Notice the seasonal term dominates the forecast (+150 from last December alone) — this is exactly the behavior an ordinary ARIMA model, lacking any term, could never produce, since it has no way to "remember" that December is special.
What this means in practice
SARIMA is the workhorse for forecasting anything with a calendar-driven cycle: retail and e-commerce demand, seasonal commodity demand (natural gas, agricultural futures), and quarterly-reported financial metrics. Choosing correctly (12 for monthly data with an annual cycle, 4 for quarterly, 5 for daily trading-week effects) and checking whether seasonal differencing is actually needed (via the same ADF/KPSS logic used for ordinary differencing, applied at the seasonal lag) both come before fitting the AR and MA orders.
SARIMA extends ARIMA with a second set of AR, differencing, and MA terms operating at the length of a recurring season, letting a single model capture both ordinary short-lag dynamics and a calendar-driven cycle — seasonal differencing subtracts the value from exactly one season ago to remove a recurring spike the way ordinary differencing removes a trend.
A common mistake is applying ordinary (non-seasonal) differencing to a strongly seasonal series and declaring it stationary once the obvious trend is gone, while the seasonal spike is still fully present and untreated — the residuals will still show strong autocorrelation at lag , , etc. Always check the autocorrelation function specifically at the seasonal lags (see Ljung-Box and Portmanteau Tests) before concluding a seasonal series has been adequately modeled, not just at the first few short lags.
Related concepts
Practice in interviews
Further reading
- Box, Jenkins & Reinsel, Time Series Analysis: Forecasting and Control, ch. 9