SARIMA Pre

1. Start With the Problem

Suppose we observe monthly ice-cream sales:

\[120,\ 135,\ 160,\ldots\]

Sales generally increase, but every summer demand rises and every winter it falls.

The series contains:

  1. A changing level or trend.
  2. A repeating 12-month seasonal pattern.
  3. Relationships between neighboring months.
  4. Random forecasting errors.

ARIMA can handle trend and short-term dependence, but ordinary ARIMA does not explicitly represent repeating seasonal relationships.

SARIMA extends ARIMA by adding seasonal differencing, seasonal autoregression, and seasonal moving-average terms.

SARIMA models both short-term relationships and relationships between matching positions in different seasonal cycles.

2. What Does SARIMA Mean?

SARIMA stands for:

\[\boxed{\operatorname{SARIMA}(p,d,q)(P,D,Q)_m}\]

The first group describes nonseasonal behavior:

ParameterMeaning
\(p\)Nonseasonal AR order
\(d\)Nonseasonal differencing order
\(q\)Nonseasonal MA order

The second group describes seasonal behavior:

ParameterMeaning
\(P\)Seasonal AR order
\(D\)Seasonal differencing order
\(Q\)Seasonal MA order
\(m\)Number of observations in one seasonal cycle

3. Meaning of the Seasonal Period \(m\)

The value of \(m\) depends on the frequency of the observations and the repeating pattern.

DatasetRepeating pattern\(m\)
Monthly dataAnnual12
Quarterly dataAnnual4
Daily dataWeekly7
Hourly dataDaily24
Hourly dataWeekly168

For monthly data with annual seasonality:

\[m=12\]

Therefore:

The seasonal component primarily works with lags such as:

\[m,\ 2m,\ 3m,\ldots\]

Seasonal Differencing

4. Why Ordinary Differencing May Not Remove Seasonality

Suppose quarterly demand is:

\[100,\ 130,\ 170,\ 140,\ 105,\ 135,\ 175,\ 145\]

Each group of four values has a similar shape.

The first differences are:

\[30,\ 40,\ -30,\ -35,\ 30,\ 40,\ -30\]

The seasonal pattern is still visible. First differencing compares neighboring periods, but the repeating relationship is between matching quarters.

We instead compare each value with the same seasonal position in the previous cycle.

5. Seasonal Differencing

Seasonal differencing is:

\[\Delta_mY_t=Y_t-Y_{t-m}\]

For monthly data with annual seasonality:

\[\Delta_{12}Y_t=Y_t-Y_{t-12}\]

This asks:

How different is this month from the same month last year?

For daily data with weekly seasonality:

\[\Delta_7Y_t=Y_t-Y_{t-7}\]

This asks:

How different is today from the same weekday last week?

6. Seasonal Differencing Example

Suppose quarterly demand over three years is:

\[\begin{aligned}\text{Year 1: }&100,\ 130,\ 170,\ 140\\\text{Year 2: }&105,\ 135,\ 175,\ 145\\\text{Year 3: }&110,\ 140,\ 180,\ 150\end{aligned}\]

Here:

\[m=4\]

The seasonal differences between years 1 and 2 are:

\[105-100,\quad135-130,\quad175-170,\quad145-140\]

Therefore:

\[\Delta_4Y_t=[5,\ 5,\ 5,\ 5]\]

The large quarterly pattern disappears. What remains is the year-over-year growth.

7. Meaning of \(D\)

The seasonal differencing order is \(D\).

With \(D=1\):

\[(1-B^m)Y_t=Y_t-Y_{t-m}\]

Here, \(B\) is the backshift operator:

\[B^mY_t=Y_{t-m}\]

Most applications use:

\[D=0\quad\text{or}\quad D=1\]

Excessive seasonal differencing can amplify noise and create artificial seasonal autocorrelation.

8. Using Ordinary and Seasonal Differencing Together

Some series contain both a nonseasonal trend and changing seasonality.

We can apply both:

\[(1-B)(1-B^m)Y_t\]

For monthly data:

\[(1-B)(1-B^{12})Y_t\]

First apply seasonal differencing:

\[W_t=Y_t-Y_{t-12}\]

Then apply ordinary differencing:

\[Z_t=W_t-W_{t-1}\]

Expanding this gives:

\[Z_t=Y_t-Y_{t-1}-Y_{t-12}+Y_{t-13}\]

This compares the current month-to-month change with the corresponding month-to-month change from last year.

Seasonal Autoregression

9. Seasonal AR Intuition

A nonseasonal AR(1) model uses:

\[Y_{t-1}\]

A seasonal AR(1) model uses:

\[Y_{t-m}\]

For monthly data:

\[Y_t=c+\Phi_1Y_{t-12}+\varepsilon_t\]

The coefficient \(\Phi_1\) measures how strongly this month depends on the same month last year.

Example

Suppose:

\[Y_t=20+0.8Y_{t-12}+\varepsilon_t\]

If sales in the same month last year were 200:

\[\widehat Y_t=20+0.8(200)=180\]

The model carries forward 80% of the previous year’s same-month value and adds an intercept of 20.

10. Meaning of \(P\)

The seasonal AR order is \(P\).

A seasonal AR(\(P\)) component uses:

\[Y_{t-m},\ Y_{t-2m},\ldots,Y_{t-Pm}\]

For \(P=2\) and \(m=12\), the model uses:

\[Y_{t-12}\quad\text{and}\quad Y_{t-24}\]

It asks:

Do matching months from one or more previous years help predict the current month?

A seasonal AR pattern may appear as significant PACF spikes at:

\[m,\ 2m,\ 3m,\ldots\]

Seasonal Moving Average

11. Seasonal MA Intuition

A nonseasonal MA(1) component uses the previous error:

\[\varepsilon_{t-1}\]

A seasonal MA(1) component uses the error from one complete seasonal cycle ago:

\[\varepsilon_{t-m}\]

For monthly data:

\[Y_t=c+\varepsilon_t+\Theta_1\varepsilon_{t-12}\]

The model asks:

Did an unexpected event in the same month last year contain information that helps correct this month’s forecast?

12. Seasonal MA Example

Suppose:

\[Y_t=100+0.6\varepsilon_{t-12}+\varepsilon_t\]

Last year’s forecast for the same month was 180, but actual sales were 200.

Therefore:

\[\varepsilon_{t-12}=200-180=20\]

The seasonal error correction is:

\[0.6(20)=12\]

Ignoring the unknown current error:

\[\widehat Y_t=100+12=112\]

The model adjusts the forecast because a similar seasonal position was previously underpredicted.

13. Meaning of \(Q\)

The seasonal MA order is \(Q\).

A seasonal MA(\(Q\)) component uses:

\[\varepsilon_{t-m},\varepsilon_{t-2m},\ldots,\varepsilon_{t-Qm}\]

For \(Q=1\) and \(m=7\), the current forecast can use the unexpected error from the same weekday last week.

A seasonal MA pattern may appear as ACF spikes at:

\[m,\ 2m,\ 3m,\ldots\]

Putting Everything Together

14. Complete SARIMA Structure

The complete model is:

\[\operatorname{SARIMA}(p,d,q)(P,D,Q)_m\]

Using the backshift operator, it can be written as:

\[\phi(B)\Phi(B^m)(1-B)^d(1-B^m)^D Y_t=c+\theta(B)\Theta(B^m)\varepsilon_t\]

where:

In plain language:

\[\boxed{\begin{aligned}\text{Current behavior}={}&\text{recent values}\\&+\text{recent errors}\\&+\text{matching seasonal values}\\&+\text{matching seasonal errors}\\&+\text{new random error}\end{aligned}}\]

15. Understanding a Model Name

Consider:

\[\operatorname{SARIMA}(1,1,1)(1,1,1)_{12}\]

This means:

Nonseasonal part

Seasonal part

This is a fairly complex model. Simpler models should also be tested.

16. Multiplicative Does Not Mean Multiplicative Seasonality

SARIMA is sometimes called a multiplicative seasonal ARIMA model because the seasonal and nonseasonal polynomials are multiplied:

\[\phi(B)\Phi(B^m)\]

This multiplication creates interaction lags.

For example:

\[(1-\phi B)(1-\Phi B^{12})\]

Expanding gives:

\[1-\phi B-\Phi B^{12}+\phi\Phi B^{13}\]

Therefore, a model with:

also produces an interaction at:

\[1+12=13\]

This use of “multiplicative” is different from multiplicative seasonality in Holt-Winters.

17. Small SARIMA Example

Consider:

\[\operatorname{SARIMA}(1,0,0)(1,0,0)_{12}\]

The AR polynomials are:

\[(1-\phi B)(1-\Phi B^{12})Y_t=\varepsilon_t\]

Expanding:

\[Y_t-\phi Y_{t-1}-\Phi Y_{t-12}+\phi\Phi Y_{t-13}=\varepsilon_t\]

Therefore:

\[Y_t=\phi Y_{t-1}+\Phi Y_{t-12}-\phi\Phi Y_{t-13}+\varepsilon_t\]

Suppose:

\[\phi=0.5,\qquad\Phi=0.8\]

and:

\[Y_{t-1}=120,\quad Y_{t-12}=150,\quad Y_{t-13}=140\]

Ignoring the unknown current error:

\[\widehat Y_t=0.5(120)+0.8(150)-0.5(0.8)(140)\]
\[\widehat Y_t=60+120-56=124\]

The forecast combines:

Choosing the Seasonal Orders

18. Choose \(m\) From Domain Knowledge

The seasonal period should usually come from how the data is generated.

Examples:

Do not automatically use a peak in a periodogram without checking whether the period makes operational sense.

Also remember:

Observation frequency does not uniquely determine seasonality.

Hourly data may contain both:

\[m=24\]

and:

\[m=168\]

Standard SARIMA handles one seasonal period directly.

19. Choose \(D\) Before \(P\) and \(Q\)

Ask whether the seasonal pattern is stable after accounting for trend.

Evidence for seasonal differencing may include:

Choose the smallest useful value of \(D\), usually 0 or 1.

20. Use Seasonal ACF and PACF as Hints

After applying the required differencing:

PatternPossible component
PACF spike at \(m\), seasonal ACF decaysSeasonal AR(1)
ACF spike at \(m\), seasonal PACF decaysSeasonal MA(1)
Both decay at seasonal lagsMixed seasonal ARMA structure

These are only starting points.

Finite samples, nonseasonal dependence, multiple seasonalities and outliers can blur textbook patterns.

21. Practical Model-Selection Workflow

  1. Determine the seasonal period \(m\) from domain knowledge.
  2. Plot the series and compare multiple seasonal cycles.
  3. Decide whether a transformation is required.
  4. Choose ordinary differencing order \(d\).
  5. Choose seasonal differencing order \(D\).
  6. Inspect the ACF and PACF of the transformed series.
  7. Propose a small collection of \(p,q,P,Q\) values.
  8. Compare AIC or BIC among fitted candidates.
  9. Compare rolling-origin forecast accuracy.
  10. Inspect residual diagnostics.
  11. Prefer the simplest model that forecasts reliably.

Do not choose the model using AIC alone. A model can fit historical data well but forecast poorly.

Diagnostics

22. What Should Good SARIMA Residuals Look Like?

After fitting SARIMA, residuals should contain no remaining predictable structure.

Check that they have:

Use:

A residual ACF spike at lag \(m\) suggests that seasonal information remains unmodeled.

23. Reconstructing Forecasts After Seasonal Differencing

Suppose:

\[W_t=Y_t-Y_{t-12}\]

The model predicts:

\[\widehat W_{t+1}=8\]

To recover the level forecast, add the corresponding observation from last year:

\[\widehat Y_{t+1}=Y_{t+1-12}+\widehat W_{t+1}\]

If the matching month last year had sales of 150:

\[\widehat Y_{t+1}=150+8=158\]

The forecast says:

Use the same seasonal position last year as the baseline, then add the predicted year-over-year change.

Software normally reverses the differencing automatically.

Practical Boundaries

24. When Is SARIMA Useful?

SARIMA works well when:

SARIMA may struggle when:

For multiple seasonalities, alternatives may include:

25. SARIMA Versus Holt-Winters

Holt-WintersSARIMA
Stores evolving level, trend and seasonal statesModels ordinary and seasonal lag relationships
Seasonality is represented as a changing seasonal effectSeasonality is represented through seasonal differencing, AR and MA terms
Strong state-based intuitionStrong correlation-based intuition
Adapts naturally to a changing local levelCaptures structured dependence among observations and errors
Additive or multiplicative seasonal formSeasonal and nonseasonal lag polynomials

Neither method is universally better.

Compare them using:

Final Intuition

SARIMA extends the ARIMA story across seasonal cycles.

It asks five questions:

  1. Should the series be differenced from the previous observation?
  2. Should it be differenced from the matching seasonal observation?
  3. Do recent values help predict the next value?
  4. Do matching values from previous seasons help?
  5. Do recent or seasonal forecast errors require correction?

The complete mental model is:

\[\boxed{\text{Stabilize locally}\rightarrow\text{stabilize seasonally}\rightarrow\text{learn recent memory}\rightarrow\text{learn seasonal memory}\rightarrow\text{correct past surprises}}\]
ARIMA remembers nearby history. SARIMA remembers nearby history and matching seasonal history.
Previous: ARIMANext: Validation