Lesson 2 - Reading the Signatures: AR vs MA

Welcome to Reading the Signatures: AR vs MA

Lesson 1 established that the ACF and PACF answer different questions, and that the gap between them is informative. This lesson cashes that in: there’s a well-known pair of signatures — one for autoregressive (AR) processes, one for moving-average (MA) processes — where the ACF and PACF behave like mirror images of each other. Once you can recognize both shapes on data where you already know the right answer, reading them on a real, unknown series (Lesson 4) stops being guesswork.

By the end of this lesson, you will be able to:

  • State the AR signature: ACF tails off, PACF cuts off sharply after lag p
  • State the MA signature: ACF cuts off sharply after lag q, PACF tails off
  • Recognize both signatures on synthetic data with known structure
  • Explain the intuition for why each process produces its particular shape

Let’s build two processes where the answer is known in advance.


The AR Signature: ACF Tails Off, PACF Cuts Off

An AR(1) process is about as simple as autoregression gets: y_t = phi * y_{t-1} + e_t — today is phi times yesterday, plus fresh randomness. Build one with a known phi = 0.7 and look at both functions:

import numpy as np
from statsmodels.tsa.arima_process import ArmaProcess
from statsmodels.tsa.stattools import acf, pacf

rng = np.random.default_rng(11)
ar1 = ArmaProcess(np.array([1, -0.7]), np.array([1])).generate_sample(
    nsample=2000, distrvs=lambda size: rng.normal(0, 1, size)
)

a_ar = acf(ar1, nlags=8)
p_ar = pacf(ar1, nlags=8)
print(np.round(a_ar, 3))   # [1.0, 0.7, 0.486, 0.349, 0.245, 0.174, 0.127, 0.087]
print(np.round(p_ar, 3))   # [1.0, 0.701, -0.009, 0.024, -0.012, 0.004, 0.008, -0.012]

The ACF tails off gradually: 0.7, 0.486, 0.349, 0.245, 0.174, 0.127, 0.087 — a smooth geometric decay that closely tracks the theoretical 0.7^k (0.7, 0.49, 0.343, 0.24, 0.168, 0.118, 0.082), never dropping to zero abruptly. The PACF cuts off sharply: 0.701 at lag 1, then essentially nothing (-0.009, 0.024, -0.012, 0.004, 0.008, -0.012 — all comfortably inside the ±0.044 significance band for n=2,000). That’s the AR(1) signature exactly: one sharp PACF spike at lag 1, and nothing meaningful after it, while the ACF fades out slowly across many lags.

The intuition: today depends directly only on yesterday, so the PACF — which strips out indirect, chained-through effects — correctly shows nothing beyond lag 1. But because yesterday depended on the day before, and so on, the raw correlation (ACF) between today and points further back doesn’t vanish; it just weakens a little more with each additional step, producing the gradual tail.


The MA Signature: ACF Cuts Off, PACF Tails Off

An MA(1) process looks different by construction: y_t = e_t + theta * e_{t-1} — today depends directly on a fresh random shock and a fraction of yesterday’s shock, not on yesterday’s observed value at all. Build one with theta = 0.7:

ma1 = ArmaProcess(np.array([1]), np.array([1, 0.7])).generate_sample(
    nsample=2000, distrvs=lambda size: rng.normal(0, 1, size)
)

a_ma = acf(ma1, nlags=8)
p_ma = pacf(ma1, nlags=8)
print(np.round(a_ma, 3))   # [1.0, 0.49, 0.045, 0.038, 0.033, 0.029, 0.002, 0.023]
print(np.round(p_ma, 3))   # [1.0, 0.49, -0.257, 0.193, -0.102, 0.09, -0.077, 0.094]

Now it’s the mirror image. The ACF cuts off sharply: 0.49 at lag 1 (close to the theoretical value of theta / (1 + theta²) = 0.7 / 1.49 ≈ 0.470), then essentially nothing from lag 2 onward (0.045, 0.038, 0.033… — all within noise of the ±0.044 band). The PACF tails off instead — but not smoothly; it oscillates while decaying: 0.49, -0.257, 0.193, -0.102, 0.09, -0.077, 0.094, alternating sign as it shrinks. That alternating-and-decaying shape is the MA signature’s PACF: because an MA process’s dependence structure only extends one step in the “shock” sense, but that one step still has to be reconstructed indirectly at every subsequent lag through the AR-like machinery the PACF uses internally, producing a decaying, sign-flipping tail rather than a clean single spike.

Two side-by-side bar-plot panels. Left panel, titled 'AR(1): ACF tails off', shows two stacked mini bar charts: the top labeled ACF with bars smoothly shrinking from a tall first bar down through many small bars over eight lags; the bottom labeled PACF with one tall spike at lag 1 and every subsequent bar essentially flat at zero. Right panel, titled 'MA(1): ACF cuts off', shows the mirror image: the top ACF chart has one tall bar at lag 1 and flat bars after it; the bottom PACF chart has bars alternating between positive and negative, shrinking in size across the lags.
The classic signatures, built on synthetic data with known structure: an AR(1) process (left) has an ACF that tails off gradually and a PACF that cuts off sharply after lag 1. An MA(1) process (right) is the mirror image — ACF cuts off after lag 1, PACF tails off with an alternating, decaying pattern.

The General Rule

These two examples generalize directly to higher orders:

  • AR(p): ACF tails off (geometrically, or as a damped oscillation for some parameter values); PACF cuts off sharply after lag p — exactly p significant PACF spikes, then nothing.
  • MA(q): ACF cuts off sharply after lag q — exactly q significant ACF spikes, then nothing; PACF tails off.
  • ARMA(p, q) (both AR and MA terms present): neither function cuts off cleanly — both tail off, which is why pure ARMA orders are harder to read directly off a plot than pure AR or pure MA orders.

A memory device

“AR: PACF is sharp.” Autoregression is about direct dependence on past values — a fixed number of them — so the PACF, which measures direct dependence, cuts off cleanly at that number. “MA: ACF is sharp.” A moving average is about direct dependence on past shocks — a fixed number of them — so the ACF, which is really measuring “how far does the shared-shock overlap extend,” cuts off cleanly at that number instead. Whichever function shows the clean, sudden stop is the one that’s counting the order directly.


Practice Exercises

Exercise 1: Identify the process type

A series’ ACF decays smoothly across ten lags with no sharp drop; its PACF has two clear spikes (at lags 1 and 2) and is essentially flat after that. What process type and order does this suggest?

Hint

This is the AR signature — ACF tails off, PACF cuts off sharply — and since the PACF has exactly two significant spikes before flattening, it suggests an AR(2) process: today depends directly on the last two values. The smooth ACF decay across many lags, rather than a sharp cutoff, is consistent with this: an AR process’s raw correlation fades gradually even though the direct dependence only reaches back two steps.

Exercise 2: The opposite pattern

A different series has an ACF with exactly one significant spike at lag 1 and nothing after; its PACF decays in an alternating, shrinking pattern across many lags. What does this suggest?

Hint

This is the MA(1) signature exactly — ACF cuts off sharply after lag 1, PACF tails off with an alternating decay — matching this lesson’s synthetic MA(1) example almost exactly (ACF: 0.49 then near-zero; PACF: 0.49, -0.257, 0.193, -0.102…). The suggested model is a moving-average process with one MA term.

Exercise 3: When neither cuts off

A series’ ACF and PACF both decay gradually across many lags, with neither showing a sharp cutoff. What does this suggest, and why is it harder to read an exact order from the plot alone?

Hint

Both functions tailing off suggests an ARMA process with both AR and MA components — since each component contributes to smearing out the other function’s cutoff (the AR part keeps the ACF from cutting off cleanly, and the MA part keeps the PACF from cutting off cleanly). Because neither plot gives you a clean “count the spikes” answer in this case, ARMA orders are typically narrowed down to a short list of plausible candidates from the plots and then chosen more rigorously — usually by fitting several candidates and comparing them with a criterion like AIC, the approach Module 5 introduces once you have a shortlist to compare.


Summary

An AR(p) process has an ACF that tails off gradually and a PACF that cuts off sharply after exactly p lags — demonstrated here on a known AR(1) process, whose ACF decayed geometrically (0.7, 0.486, 0.349…) while its PACF showed one clean spike (0.701) and nothing significant after. An MA(q) process is the mirror image: its ACF cuts off sharply after q lags, and its PACF tails off, typically with an alternating, decaying pattern — demonstrated on a known MA(1) process (ACF: 0.49 then near-zero; PACF: 0.49, -0.257, 0.193, -0.102, oscillating and shrinking). When both functions tail off instead of one cutting off cleanly, that points toward an ARMA process with both components, which is harder to read an exact order from directly.

Key Concepts

  • AR signature — ACF tails off, PACF cuts off sharply after lag p.
  • MA signature — ACF cuts off sharply after lag q, PACF tails off (often with alternating sign).
  • “Whichever function is sharp is counting the order” — a memory device for which function to read the order from.
  • ARMA is harder — when both AR and MA terms are present, neither function cuts off cleanly, and candidates are narrowed down rather than read exactly.

Why This Matters

These two signatures are the entire reason ACF and PACF plots are useful for model building: without a known reference shape to compare against, a real series’ plot is just two rows of bars. With the AR and MA signatures memorized — and, more importantly, verified here on data where the answer was known in advance — a real plot becomes readable. Next, before applying this to Cyclepath, Lesson 3 covers something just as important as the shapes themselves: which bars in a real plot are actually meaningful, and which are just noise crossing the line by chance.


Next Steps

Continue to Lesson 3 - Confidence Bands and Multiple Testing

Learn what the significance band actually means, and why testing many lags at once means some will look significant by chance alone.

Back to Module Overview

Return to the Autocorrelation: ACF and PACF module overview


Continue Building Your Skills

You’ve now seen the AR and MA signatures on data where the answer was known in advance — a geometric ACF decay with a single sharp PACF spike for AR(1), and the mirror image for MA(1). Before reading Cyclepath’s real, unknown plot, you need one more tool: a proper way to decide which bars are actually significant, since with enough lags tested, some will cross the line purely by chance.