An entirely different way to give a series memory is to let today depend not on yesterday's level but on yesterday's shock. An MA(1) process is
x_t = c + ε_t + θ·ε_{t-1}, ε_t ~ i.i.d.(0, σ²)
How do you recognise an MA(1) process?
Unlike an AR process, a finite MA process is always stationary, regardless of θ (a separate technical condition, invertibility, |θ| < 1, governs whether the MA process can be rewritten as an infinite AR process, useful for forecasting theory, not needed for this module's gate). The defining signature is the mirror image of the AR case: the MA(1)'s theoretical ACF cuts off sharply after lag 1, at the value ρ(1) = θ/(1+θ²), and is exactly zero at every lag beyond, because by construction, x_t and x_{t-2} share no common shock term at all. Its PACF, by contrast, decays (tapering, often with alternating sign) rather than cutting off. Worked Example 2 fits exactly this process to a synthetic US short-duration bond fund's monthly returns, whose one-period "rebate timing" shocks are a natural real-world MA(1) story: a cash inflow this month affects this month's return and, through a lagged accrual, next month's, and then it's gone.
Advertisement
How do you tell an AR process from an MA process?
Put the two signatures side by side, because this table (the Box-Jenkins identification grid (Box, Jenkins & Reinsel)) is the single fastest diagnostic tool in classical time-series analysis, and an analyst who has memorized it can often name the right model class from the correlogram alone, before fitting anything:
| Process | ACF shape | PACF shape |
|---|---|---|
| AR(p) | decays gradually (geometric or damped oscillation) | cuts off sharply after lag p |
| MA(q) | cuts off sharply after lag q | decays gradually |
| ARMA(p,q) | decays gradually | decays gradually |
| White noise / no memory | ≈ 0 at every lag ≥ 1 | ≈ 0 at every lag ≥ 1 |
{
"skill": "Reading an ACF/PACF correlogram to propose a candidate model order — the QM/AA 'copilot-but-you-interpret' angle",
"use": "Describe your correlogram's shape in words (or paste the numeric ACF/PACF values) to a chat assistant and ask it to propose AR/MA/ARMA orders from the Box-Jenkins grid — then check every proposal against the grid yourself before accepting it.",
"tools": ["Chat assistants — Claude, ChatGPT, Gemini", "A notebook AI grounded on your own computed ACF/PACF output (never on a description you didn't verify)"],
"prompt": "Here are my sample ACF values at lags 1-6: <VALUES>, and PACF values at lags 1-6: <VALUES>, with a 95% band of +/-<BAND>. Using the Box-Jenkins ACF/PACF identification grid, propose the most likely AR/MA/ARMA order and explain which specific lags drove your call.",
"verify": "The model can misread a borderline lag (one just inside or outside the band) exactly as easily as you can. Re-derive the call yourself: which lags are outside +/-1.96/sqrt(n)? Does the shape actually cut off or just decay slowly? Fit the proposed order and check the estimated coefficient's own significance (Guardrail-style: recompute, don't just accept) before you treat the suggested order as final.",
"diy": "You must be able to read a cut-off versus a decay by eye and state the grid from memory first — that is exactly what this section and Worked Examples 1-2 build. A copilot can suggest an order in a second; only you can tell a real cutoff from four noisy lags that happen to hug the band.",
"market": "IN"
}
ARMA, differencing, and the ARIMA(p,d,q) notation
Combine the two building blocks and you get an ARMA(p,q) process (p autoregressive lags and q moving-average lags at once) whose ACF and PACF both decay gradually (neither cuts off cleanly), which is precisely why the grid above lists ARMA as the residual case: if neither signature cuts off, you are very likely looking at a mixed process. When a series is not stationary in levels (see stationarity and the unit root test), the standard fix is differencing: compute Δx_t = x_t - x_{t-1} and test that series instead. A series that needs to be differenced d times before it becomes stationary is said to be integrated of order d, written I(d); a plain random walk is I(1) (difference it once, you get white noise); most macro levels and asset-price levels are I(1) in practice, while returns (already a first difference of log price) are typically I(0). The full notation ARIMA(p,d,q) packages all three choices (AR order, differencing order, MA order) into one label, and the practical business of choosing p, d, and q (via the ACF/PACF grid, plus information criteria such as AIC/BIC that trade off fit against complexity) is a craft this module introduces but does not turn into a production skill: seasonal variants (SARIMA) and automated order search belong explicitly to DA2.03.