Your lecture notes show a plot and then jump straight to the conclusion — the reasoning in between is missing. This session fills that gap: what each diagnostic plot is actually measuring, why the patterns mean what they mean, and how to turn a picture into a decision. Then you practice on eight plots.
Companion to the "Reading the Plots" quick-reference
Strip away the jargon and every chart in this course is asking: "Is there a pattern here, or is it just noise?" A pattern you can see is structure you can model; pure noise is the finish line (nothing left to extract). So before you read any specific plot, hold two reference pictures in your head:
The autocorrelation function plots, at each lag k, the correlation between the series and a copy of itself shifted k steps: rₖ = corr(yₜ, yₜ₋ₖ). Lag 0 is always 1 (a series is perfectly correlated with itself), so we read from lag 1 on.
The two dashed blue lines sit at ±1.96/√n. Here's what that number is: if the series were truly white noise, each sample autocorrelation would scatter around 0 with standard deviation ≈ 1/√n, and 95% of them would fall within ±1.96/√n. So the band is the range you'd expect by pure chance even when there's no real correlation.
The ordinary ACF at lag 3 is "contaminated": yₜ correlates with yₜ₋₃ partly through yₜ₋₁ and yₜ₋₂. The partial autocorrelation strips that out: it's the correlation between yₜ and yₜ₋ₖ after removing the influence of all the lags in between.
yₜ = φ₁yₜ₋₁ + φ₂yₜ₋₂ + … + φₖyₜ₋ₖ. The PACF at lag k is essentially the coefficient on yₜ₋ₖ — the direct effect of lag k once the closer lags are already accounted for. ACF = total relationship; PACF = direct-only relationship.The lectures give you the table — AR(p): PACF cuts off at p; MA(q): ACF cuts off at q — but never say why. Here's the why, and once you see it you'll never memorize it again.
An AR(p) model literally is a regression on the last p values: yₜ = c + φ₁yₜ₋₁ + … + φₖyₜ₋ₖ + εₜ. There is direct dependence on exactly p lags and no more. Since the PACF measures direct dependence, it is non-zero up to lag p and exactly zero after — it cuts off. Meanwhile each value keeps echoing into the future indirectly, so the total correlation (ACF) fades out gradually — it tails off (for AR(1), rₖ = φⁿ, a clean geometric decay).
An MA(q) value is a weighted sum of the last q+1 random shocks: yₜ = μ + εₜ + θ₁εₜ₋₁ + … + θₔεₜ₋ₔ. Two observations can only be correlated if they share a shock. Observations more than q steps apart share none → their correlation is exactly 0. So the ACF is non-zero up to lag q and cuts off after. The PACF, by contrast, tails off (often alternating in sign).
Read it: ACF decays smoothly (0.7, 0.49, 0.34…); PACF has a single bar at lag 1 and nothing after. → PACF cuts off at 1 → AR(1). Next move: fit arima(y, order=c(1,d,0)).
Read it: ACF has one significant bar at lag 1 then drops inside the band; PACF decays with alternating signs. → ACF cuts off at 1 → MA(1). Next move: fit arima(y, order=c(0,d,1)).
This is the mistake that costs the most points. A non-stationary (trending) series also has a single big PACF spike at lag 1 — so people call it AR(1). The tell is in the ACF:
diff() it before reading any orders. Reading p and q off a non-stationary ACF/PACF is meaningless. Stationarity first, always.plot(decompose(y)) gives four stacked panels. Students study all four; the verdict lives in the bottom (random/irregular) panel. It answers "did I pick the right model, additive or multiplicative?"
log first). This is Homework 2's JohnsonJohnson: additive leaves a systematic pattern in random; multiplicative removes it.After any model, checkresiduals() shows residuals-over-time, their ACF, a histogram, and a Ljung–Box test. You want all four to say "white noise":
This is just Module 2's white-noise test re-used on the residuals. If it fails, your model missed structure → change p, q, P, or Q.
The dashed line is the point forecast; the shaded bands (80% inner, 95% outer) widen with the horizon because uncertainty compounds. Sanity-check the shape: a seasonal model should keep the seasonal cycle; a pure stationary ARMA reverts to the mean after a few steps (it has no trend to project). Always report the interval, not just the point.
For each ACF/PACF pair: decide the process (AR? MA? ARMA? non-stationary? white noise?) and your next move. Then reveal.
| You see | Conclusion | Next move |
|---|---|---|
| ACF decays slowly, stays outside band | Non-stationary (trend) | diff(), then re-read |
| Tall ACF spikes at 12, 24… decaying slowly | Seasonal non-stationarity | diff(y,12) (D=1) |
| PACF cuts off at p · ACF tails off | AR(p) | arima(…, c(p,d,0)) |
| ACF cuts off at q · PACF tails off | MA(q) | arima(…, c(0,d,q)) |
| Both tail off | ARMA(p,q) | Try candidates, lowest AIC |
| Both inside band (residuals) | White noise → adequate | Forecast with intervals |
| Random panel: flat noise | Decomposition model fits | Keep additive/multiplicative choice |
| Random panel: wave / megaphone | Wrong model | Switch add ↔ mult, or log |
| Ljung–Box p > 0.05 | No autocorrelation left | Done; p < 0.05 → revise orders |
STAT 411 · Plot Reading Clinic · built to fill the interpretation gap in the lecture notes, using standard Box–Jenkins / forecasting reasoning (Hyndman, FPP). Schematics are illustrative.