ACF and PACF Model Identification
Two fingerprint plots that tell you, before you fit anything, roughly how many lags of a time series' own past actually matter — the first step of building an ARIMA model instead of guessing at one.
Prerequisites: Autocorrelation and Serial Correlation, Stationarity
Before you can fit an ARIMA model to a time series, you need to decide how much of the past to feed it — one lag back, five, twenty? Fit too few lags and the model misses real structure; fit too many and you're chasing noise, and every extra parameter costs you estimation precision. Guessing is expensive: trying every combination of lag lengths and comparing fit statistics is slow and easy to overfit. The autocorrelation function (ACF) and partial autocorrelation function (PACF) are two plots you can look at before fitting anything, and their shapes — which lags spike, which decay — read almost directly off as "try this many autoregressive terms, that many moving-average terms."
An analogy: hearing an echo versus hearing the original sound
Imagine you're in a canyon and you shout once. The echo you hear a second later isn't just a delayed copy of your voice — it's colored by every surface the sound bounced off along the way. If you want to know how far away the nearest wall is, listening to the raw echo is confusing, because a component of what you hear one second later is itself an echo of an echo from two seconds ago, mixed in. What you actually want is the echo one second later after removing anything explainable by the echo two, three, four seconds later. That "cleaned" echo strength is the partial autocorrelation. The raw, uncleaned echo strength — everything, including indirect bounces — is the ordinary autocorrelation. Both tell you something; they tell you different things, and comparing their shapes is how you triangulate the canyon's structure.
The two functions, one symbol at a time
Let be the series value at time , and let be a lag — how many steps back you're comparing to. The autocorrelation function at lag is
In words: ("rho sub k") is the ordinary correlation between the series and its own value steps earlier — how much does today resemble days ago, ignoring everything in between. The partial autocorrelation function at lag , written ("phi sub k k"), is that same correlation but with the intermediate lags held fixed — statistically regressed out first:
In words: is the direct relationship between today and days ago, with any relationship that runs through the days in between subtracted out first. The two functions have complementary signature shapes that identify the model family:
| Process | ACF shape | PACF shape |
|---|---|---|
| AR() | decays gradually (geometric or damped sine) | cuts off sharply after lag |
| MA() | cuts off sharply after lag | decays gradually |
| ARMA() | decays gradually | decays gradually |
In words: an autoregressive process leaves a fingerprint of "PACF stops suddenly," a moving-average process leaves the mirror-image fingerprint "ACF stops suddenly," and if neither plot has a clean cutoff, you likely need both components.
The ACF cuts off cleanly for a moving-average process; the PACF cuts off cleanly for an autoregressive process. Read which plot has the sharp edge, and that tells you which family — and the lag where it cuts off tells you the order.
Worked example 1: identifying an AR(1) by hand
Suppose true model is . The theoretical ACF of an AR(1) is where : , , , — geometric decay, exactly the shape in the figure. The theoretical PACF is (matches , since with only one lag available there's nothing to partial out), and for all , because once you know , adds zero additional predictive power — it only mattered through its effect on . Seeing "ACF decays like , PACF is then noise" tells you immediately: fit an AR(1), and the decay ratio between successive ACF values () even hands you a rough estimate of before you've fit anything.
Worked example 2: identifying an MA(1) by hand
Suppose true model is . The theoretical ACF of an MA(1) is , and for — a shock only ever touches one lag of the series directly, so correlation vanishes beyond lag 1. The PACF, in contrast, does not cut off; it decays gradually (in this case as an alternating, damped sequence, roughly ) because expressing an MA(1) in terms of past 's requires infinitely many autoregressive terms. So "ACF has exactly one spike at lag 1, PACF trails off" is the mirror image of example 1, and it says: fit an MA(1), not an AR(1).
The dashed confidence band you'd draw on a real ACF/PACF plot is built from exactly this kind of normal approximation — under the null of no autocorrelation at that lag, is approximately normal with standard error , so bars inside roughly are statistically indistinguishable from zero.
What this means in practice
- This is step one of Box-Jenkins model building. You read ACF/PACF to propose a candidate , fit it, then check the residuals' ACF/PACF are flat — if they're not, you missed structure and revise.
- You must difference first. ACF/PACF identification assumes stationarity; a trending or unit-root series shows an ACF that barely decays at all (near 1.0 for dozens of lags) regardless of its true short-run structure, which is itself a diagnostic that you need to difference before reading anything else.
- Confidence bands, not exact cutoffs. With finite samples, a "cutoff" is really "falls inside the roughly band," so a single bar poking slightly outside at a high lag is often noise, not signal — look for a pattern, not one bar.
- Seasonal series show spikes at seasonal lags. A spike at lag 12 in monthly data, with nothing unusual elsewhere, points to a seasonal AR or MA term at that specific lag, not a longer plain AR order.
The classic confusion: assuming a decaying ACF or PACF means "no structure" or "just add more lags until it looks flat." A gradually decaying shape is not noise — it is the expected signature of an AR or ARMA process, and it never truly reaches zero even for a perfectly specified low-order model. Traders new to this often keep adding AR terms chasing a decaying ACF to zero, drastically overfitting, when the correct read was "the PACF already cut off at lag 2, stop there" and let the ACF's gentle decay be the confirmation, not the target.
Practice in interviews
Further reading
- Box, Jenkins, Reinsel & Ljung, Time Series Analysis, ch. 3
- Hamilton, Time Series Analysis, ch. 4