Learn time series methods with 19 worked examples covering ARMA, unit roots, cointegration, error correction, and forecasting.

Time Series Methods: ARMA, Unit Roots & Cointegration

Time Series Methods: ARMA, Unit Roots & Cointegration

ECONOMETRICS • FORMULAS • WORKED EXAMPLES

A practical guide to persistence, forecasting, spurious regression, and long-run economic relationships—with 19 worked examples.

Time series methods help you explain how a variable evolves, forecast its next value, and separate meaningful relationships from misleading trends. However, choosing a model requires more than finding a high R-squared. You also need to understand persistence, stationarity, shocks, and the information available at each point in time.

For example, an unexpected sales increase may fade within a month, persist for years, or permanently change the business’s trajectory. Each possibility implies a different statistical model. Consequently, the same regression technique can produce useful evidence in one setting and a convincing illusion in another.

This guide develops the topics in the supplied chapter pages: autoregressive and moving-average processes, ACF and PACF, information criteria, unit roots, cointegration, error correction, and Granger causality. In addition, it provides original calculations, explicit assumptions, and practical checks that connect those ideas. The worked examples use teaching data unless a caption identifies historical observations.

Time series methods start with the order of observations

A time series records a variable in chronological order. Monthly sales, quarterly output, and daily exchange rates all fit this description. Unlike an unordered sample, a time series carries information through its sequence: yesterday can help explain today.

Before estimating anything, define the observation interval and the measurement unit. For instance, “100” might mean 100 dollars, a price index of 100, or a log-transformed quantity with a different interpretation. Likewise, one lag means one day in daily data and one quarter in quarterly data.

The symbols used throughout this guide

Notation reference
SymbolMeaningPractical interpretation
YtValue at time tThis month’s sales or this quarter’s output
Yt−1First lagThe previous observation
εtInnovation or new shockThe unpredictable component arriving at t
φAutoregressive coefficientHow strongly the past level carries forward
θMoving-average coefficientHow a past innovation affects the current value
ΔYtYt − Yt−1Change between adjacent observations
I(0)Stationary in the integration-order senseNo differencing needed to remove a stochastic trend
I(1)Integrated of order oneFirst differences are I(0)
TUsable sample sizeObservations remaining after transformations and lags

White noise has zero mean, constant finite variance, and zero autocovariance at nonzero lags. However, those properties alone do not imply independence or a normal distribution. Throughout the elementary calculations below, innovations satisfy these conditions; stronger assumptions appear explicitly when a calculation needs them.

For a forecasting model, an innovation should also represent information that past observations cannot predict. Therefore, unexplained patterns in fitted residuals deserve attention. A residual series can have a near-zero average while still containing useful predictive structure.

Three questions that prevent the wrong analysis

First, decide whether you want a forecast, an economic explanation, or a causal estimate. Next, identify whether the model concerns levels, changes, or percentage changes. Finally, ask whether the relationship should hold over the whole sample or only within a particular regime.

A forecast of next month’s demand may only need reliable predictive performance. By contrast, a claim about how policy changes demand requires a credible identification strategy. Time ordering helps organize both tasks, but it does not make them equivalent.

AR, MA, and ARMA models: how shocks travel through time

Autoregressive models use past values

An autoregressive model explains the current observation through earlier values of the same variable. In its simplest form, an AR(1) process uses one lag. Centering the model around its mean makes persistence especially easy to interpret.

Yt − μ = φ(Yt−1 − μ) + εt

Equivalently, write Yt = c + φYt−1 + εt, where c = (1 − φ)μ. For the usual causal stationary AR(1), |φ| < 1. As a result, deviations from the mean gradually disappear rather than accumulate forever.

Worked example 1: find the mean and variance of an AR(1)

Suppose Yt = 2 + 0.8Yt−1 + εt, with innovation variance equal to 4. Taking expectations under stationarity gives μ = 2 + 0.8μ. Therefore, the unconditional mean equals 10.

μ = c / (1 − φ) = 2 / 0.2 = 10
Var(Yt) = σε2 / (1 − φ2) = 4 / 0.36 ≈ 11.111

The intercept is 2, but the mean is 10. This distinction matters because the model repeatedly carries earlier contributions into later observations. Moreover, the series standard deviation is about 3.333, which exceeds the innovation standard deviation of 2.

The variance formula follows directly from independence of the current innovation and the past level. Specifically, V = φ²V + σ², so solving for V gives the expression above. A stationary initialization preserves that variance at every date.

Worked example 2: forecast one, two, and three periods ahead

Continue with the same model and let the latest observation equal 15. Because future innovations have conditional mean zero, the forecast moves toward 10. Each additional step preserves 80% of the remaining deviation.

ŶT+h|T = μ + φh(YT − μ)
Original AR(1) forecasting calculations; parameters treated as known
Forecast horizonCalculationPoint forecast
110 + 0.8 × 514.00
210 + 0.8² × 513.20
310 + 0.8³ × 512.56
1010 + 0.8¹⁰ × 510.54

These forecasts describe conditional averages, not guaranteed future outcomes. New shocks can push actual observations away from the predicted path. Nevertheless, the model’s mean reversion becomes clear even before you estimate a real dataset.

Worked example 3: calculate the half-life of a shock

For 0 < φ < 1, a one-unit shock leaves φh units after h periods. Set that expression equal to 0.5 and solve for h. Consequently, persistence can be translated into a time measure that readers understand.

h½ = ln(0.5) / ln(φ)
Original calculations: small coefficient changes can create large persistence differences
φShock half-lifeInterpretation with monthly observations
0.51.00 periodHalf disappears after one month
0.83.11 periodsThe first whole-month point below half is month 4
0.9513.51 periodsMore than a year to halve the effect
0.9968.97 periodsAlmost 69 months

A coefficient of 0.99 still satisfies the AR(1) stationarity condition. However, its behavior over a short sample can resemble a random walk. This explains why visual inspection alone can struggle to distinguish very persistent stationarity from a unit root.

Moving-average models use past shocks

A moving-average process combines current and past innovations. The term does not mean a rolling average of observed prices or sales. Instead, it describes how unexpected disturbances enter the outcome.

MA(1): Yt = μ + εt + θεt−1

A finite MA process with white-noise inputs is covariance stationary for finite coefficients. Invertibility imposes an additional restriction; for this MA(1), |θ| < 1 gives the usual invertible representation. Therefore, stationarity and invertibility answer different questions.

Invertibility allows the model to recover innovations through a stable representation in past observations. Without a normalization such as invertibility, different parameter values can describe the same autocorrelation pattern. In practice, check the software’s parameter convention before comparing estimates.

Worked example 4: translate the MA sign convention

The photographed chapter writes its MA term with a minus sign: Yt = εt − θbookεt−1. This article uses a plus sign. Accordingly, θhere = −θbook.

εt − (−0.8)εt−1 = εt + 0.8εt−1

Thus, the chapter’s coefficient of −0.8 corresponds to +0.8 in the plus-sign representation. Both expressions generate exactly the same series. Comparing the numbers without their equations would incorrectly suggest opposite dynamics.

ARMA models combine both channels

An ARMA(p, q) model combines p autoregressive lags and q moving-average lags. In a centered representation, its general form is:

Yt − μ = ∑i=1p φi(Yt−i − μ) + εt + ∑j=1q θjεt−j

For higher-order AR models, checking each coefficient separately is insufficient. Instead, stationarity depends on the roots of 1 − φ₁z − … − φpzp: they must lie outside the unit circle in this convention. Similarly, invertibility depends on the moving-average polynomial’s roots.

For a broader forecasting treatment, see Hyndman and Athanasopoulos on non-seasonal ARIMA models. The distinction between ARMA and ARIMA is that ARIMA also allows differencing before fitting the stationary dynamics.

Worked example 5: apply identical shocks to three processes

To compare the processes, start with the ten innovations in the first supplied table. Below, we reuse those inputs and recalculate three series from zero initial values. This controlled comparison isolates the model’s propagation mechanism because every process receives the same new shock.

Inputs: supplied chapter, Table 11.1. Outputs: recalculated here; Y₀ = ε₀ = 0; plus-sign MA convention.
tInnovation εAR(1), φ = 0.8MA(1), θ = 0.8ARMA(1,1), φ = θ = 0.8
1-0.6900-0.6900-0.6900-0.6900
21.04000.48800.4880-0.0640
31.30001.69042.13202.0808
4-0.15001.20230.89002.5546
5-0.26000.7019-0.38001.6637
60.07000.6315-0.13801.1930
71.12001.62521.17602.1304
8-0.30001.00020.59602.3003
9-1.7200-0.9199-1.9600-0.1198
100.0100-0.7259-1.3660-1.4618
At t = 2:
AR: 1.04 + 0.8(−0.69) = 0.488
MA: 1.04 + 0.8(−0.69) = 0.488
ARMA: 1.04 + 0.8(−0.69) + 0.8(−0.69) = −0.064

Although AR and MA happen to match at the second observation, they separate afterward. For instance, AR uses the previous generated level, while MA uses the previous innovation. The ARMA process includes both terms, so its early path differs even more.

Because the illustration starts at fixed zero values, it does not initialize the AR process in its stationary distribution. Therefore, early-sample variance can differ from its long-run variance even though the coefficients describe a stable model. Initialization is another reason short simulations can look unusual.

2026-11-03T19:19:03.111935 image/svg+xml Matplotlib v3.10.8, https://matplotlib.org/ 0 2 4 6 8 10 12 Periods after a one-unit shock −0.4 −0.2 0.0 0.2 0.4 0.6 0.8 1.0 Effect on the level A shock fades gradually in AR models; MA memory ends AR(1): φ = 0.8 AR(1): φ = −0.5 MA(1): θ = 0.8
Original theoretical impulse responses. All models receive a one-unit shock at period zero and no subsequent shocks; means are zero.

Worked example 6: derive the infinite MA representation

Start from the centered AR(1) equation and repeatedly substitute for the lagged value. After m substitutions, the result contains earlier innovations and a remaining initial-value term. Because |φ| < 1, that final term vanishes in the stable limit.

Yt = εt + φεt−1 + φ²εt−2 + … + φm−1εt−m+1 + φmYt−m
Hence: Yt = ∑j=0∞ φjεt−j

With φ = 0.8, the first five weights are 1, 0.8, 0.64, 0.512, and 0.4096. Thus, an AR model can remember a shock for infinitely many periods while giving it progressively less weight. “Infinite memory” does not mean an effect of constant size.

Worked example 7: derive the infinite AR representation

Now start from Yt = εt + θεt−1. Solve recursively for the past innovation and substitute it back into the equation. Under invertibility, the coefficients decay and produce an infinite autoregressive representation.

Yt = θYt−1 − θ²Yt−2 + θ³Yt−3 − … + εt

For θ = 0.5, the coefficients begin 0.5, −0.25, 0.125, and −0.0625. However, the shock’s direct effect in the original MA(1) still ends after one lag. The infinite representation describes an equivalent way to use observed history, not a new physical propagation mechanism.

Identify time series models with ACF, PACF, and diagnostics

Autocorrelation measures dependence across a lag

At lag k, the autocorrelation function, or ACF, compares observations separated by k periods. For a covariance-stationary series, the denominator is the common variance. Therefore, the result measures dependence rather than the scale of the observations.

ρk = Cov(Yt, Yt−k) / Var(Yt)

A common sample estimator uses the overall sample mean in both the numerator and denominator. However, software can offer alternative finite-sample normalizations. Specify the estimator when reproducing a small numerical table, because minor differences may reflect conventions rather than an arithmetic error.

rk = [∑t=k+1T(Yt − Ȳ)(Yt−k − Ȳ)] / [∑t=1T(Yt − Ȳ)²]

The NIST autocorrelation reference explains this sample calculation. Its emphasis on equally spaced observations matters: “lag one” loses a consistent meaning when gaps represent different time intervals.

Worked example 8: compare theoretical autocorrelations

For an AR(1), multiply the equation by Yt−k and take expectations to obtain the recursion γk = φγk−1. Consequently, ρk = φk. In contrast, an MA(1) shares an innovation across adjacent observations but none across lags greater than one.

AR(1): ρk = φk
MA(1): ρ1 = θ / (1 + θ²); ρk = 0 for k ≥ 2
Original population ACF calculations
LagAR(1): φ = 0.8MA(1): θ = 0.8
10.80000.4878
20.64000.0000
30.51200.0000
40.40960.0000
50.32770.0000

Notice that the MA coefficient is 0.8, but its lag-one autocorrelation is about 0.4878. Those two quantities measure different things. Moreover, θ and 1/θ produce the same value of θ/(1 + θ²), which helps explain why an invertibility convention is useful.

2026-11-03T19:19:03.267144 image/svg+xml Matplotlib v3.10.8, https://matplotlib.org/ 2 4 6 8 10 Lag 0.0 0.2 0.4 0.6 0.8 Population autocorrelation Theoretical ACF: gradual decay versus a one-lag cutoff AR(1): φ = 0.8 MA(1): θ = 0.8
Original population ACFs. A finite sample will fluctuate around these theoretical values; it will rarely show a perfect cutoff.

PACF removes the linear contribution of intermediate lags

The partial autocorrelation at lag k isolates the linear relationship between Yt and Yt−k after accounting for intervening lags. For an AR(1), the population PACF becomes zero after lag one. An AR(p) has its corresponding cutoff after lag p.

Identification heuristics, not automatic model-selection rules
ProcessPopulation ACFPopulation PACFCandidate to investigate
AR(p)Tails offZero after pAutoregressive model
MA(q)Zero after qUsually tails offMoving-average model
ARMA(p,q)Usually tails offUsually tails offMixed model
Persistent nonstationary levelOften decays very slowlyMay show a large first spikeTransform and investigate stationarity
Seasonal dependenceSpikes around seasonal lagsDepends on seasonal structureSeasonal terms or seasonal differencing

These patterns guide an initial search rather than establish a final specification. In particular, short samples and mixed models can obscure the textbook shapes. The NIST guide to Box–Jenkins identification emphasizes this gap between theoretical patterns and sample evidence.

Worked example 9: interpret an approximate ACF band

Under a simple white-noise approximation, an individual sample autocorrelation has a rough 95% band of ±1.96/√T. For 100 observations, that range is approximately ±0.196. With 400 observations, it narrows to ±0.098.

Suppose a sample autocorrelation equals 0.15. It falls inside the first band but outside the second. Therefore, the same estimated magnitude can produce different statistical evidence as the sample size changes.

These are pointwise reference bands, not a simultaneous guarantee across every displayed lag. Examining 30 lags creates more opportunities to see an isolated large spike. Consequently, a joint diagnostic offers useful complementary evidence.

Worked example 10: calculate Box–Pierce and Ljung–Box statistics

Take 100 observations and four sample autocorrelations: 0.30, 0.20, 0.10, and 0.05. The Box–Pierce statistic sums their squares and multiplies by the sample size. Ljung–Box adds a finite-sample adjustment to each term.

QBP = T∑k=1mrk² = 100(0.09 + 0.04 + 0.01 + 0.0025) = 14.25
QLB = T(T + 2)∑k=1m[rk²/(T − k)] ≈ 14.7532

For a raw white-noise test with four lags and no estimated ARMA terms, the approximate reference distribution has four degrees of freedom. Its 5% critical value is 9.4877. Both statistics exceed that threshold; their approximate p-values are 0.0065 and 0.0052, respectively.

Residual diagnostics require attention to parameter estimation. For a fitted nonseasonal ARMA(p, q), a common adjustment uses m − p − q degrees of freedom, provided that number is positive. The statsmodels Ljung–Box documentation describes this adjustment through its model_df argument.

A rejection indicates remaining autocorrelation across the tested lags. However, a large p-value does not prove independence, normality, or correct specification in every respect. You must still examine outliers, variance changes, and forecast performance.

Worked example 11: compare AIC on an identical sample

For a Gaussian regression comparison with the same dependent variable and sample, a convenient per-observation expression is ln(RSS/T) + 2k/T, up to common constants. Here, RSS means residual sum of squares and k counts regression coefficients, including the intercept. A common variance-parameter penalty does not change the ranking when every candidate uses it consistently.

AIC = −2ln(L̂) + 2K
Simplified common-sample comparison: AIC/T = ln(RSS/T) + 2k/T + common terms
Original hypothetical Gaussian-regression comparison; lower is better
CandidateTRSSkSimplified score
A10012020.22232
B10011030.15531
C10010940.16618

Candidate B wins even though C has the smallest RSS. Its slightly worse fit buys a simpler model, which improves the penalized score. Meanwhile, A loses because its savings in parameters do not compensate for its larger residual error.

For ARMA likelihood estimation, use the software’s full likelihood-based information criterion and document how it counts parameters. Do not compare arbitrary residual formulas from different estimation methods. Similarly, changing the differencing order can change the effective data and likelihood, so a naive cross-order AIC ranking can mislead.

AICc adds a small-sample correction, while BIC uses a different complexity penalty. Neither criterion establishes economic causation. Instead, use a short list of plausible candidates and let residual diagnostics and future-data performance challenge the ranking.

Stationarity, random walks, and unit-root testing

Stationarity concerns a process, not a flat-looking line

Weak stationarity requires a constant mean, a constant finite variance, and autocovariances that depend on lag rather than calendar time. A stationary series can still fluctuate strongly and display persistent runs. Conversely, a nonstationary sample can look calm over a short window.

Consider the distinction between a deterministic trend and a stochastic trend. Removing a fixed time trend can address the former. Differencing addresses a unit-root component, although unnecessary differencing can create avoidable dependence.

Different sources of persistence require different specifications
ModelExample equationWhat happens to a shock?Typical treatment
Stationary AR(1)Yₜ − μ = 0.7(Yₜ₋₁ − μ) + εₜEffect fadesModel stationary levels
Trend-stationaryYₜ = a + bt + uₜ; uₜ is stationaryDeviation from trend fadesModel the deterministic trend
Random walkYₜ = Yₜ₋₁ + εₜLevel effect persistsConsider first differences
Random walk with driftYₜ = δ + Yₜ₋₁ + εₜShock persists around a drifting pathConsider differences with an intercept

For additional examples, consult Forecasting: Principles and Practice on stationarity and differencing. In applied work, a graph, institutional knowledge, and formal testing should inform the transformation together.

Worked example 12: show why random-walk variance increases

Let Yt = Yt−1 + εt, with fixed Y₀ and uncorrelated innovations of variance σ². Repeated substitution adds every innovation since the starting date. Consequently, variances add across those shocks.

Yt = Y₀ + ∑j=1tεj
Var(Yt | Y₀ fixed) = tσ²
ΔYt = εt

With σ² = 1, the level variance equals 1 after one period, 10 after ten periods, and 20 after twenty periods. Yet every first difference has variance 1. Thus, differencing removes the accumulated stochastic trend in this specific model.

2026-11-03T19:19:03.408315 image/svg+xml Matplotlib v3.10.8, https://matplotlib.org/ 0.0 2.5 5.0 7.5 10.0 12.5 15.0 17.5 20.0 Time from a fixed zero starting value 0.0 2.5 5.0 7.5 10.0 12.5 15.0 17.5 20.0 Variance (innovation variance = 1) Unit-root uncertainty grows; stable AR uncertainty levels off Random walk: variance = t AR(1): variance approaches 2.778
Original variance calculations from fixed initial values. For the stable AR(1), Var(Yₜ) = (1 − 0.8²ᵗ)/(1 − 0.8²); for the random walk, Var(Yₜ) = t.

Worked example 13: recognize spurious regression

Imagine generating Xt and Yt as separate random walks with independent innovation sequences. Their data-generating processes contain no link. Nevertheless, a particular sample can display a strong relationship in levels because both paths wander over time.

The supplied chapter illustrates this problem with two simulated series: its levels regression reports R² = 0.32 and a slope t-statistic of −2.84. After differencing, the reported R² falls to 0.02 and the t-statistic to −0.53. These figures describe that teaching example; they are not universal outcomes of differencing.

The important lesson concerns the validity of the inference. Conventional stationary-regression t critical values do not automatically apply to unrelated integrated levels. Therefore, an apparently impressive t-statistic cannot rescue a model whose underlying assumptions fail.

At the same time, differencing every trending series without checking cointegration can discard a meaningful long-run relationship. The correct question is whether the variables share a stable equilibrium combination. That question comes after the unit-root assessment.

The augmented Dickey–Fuller test

The ADF regression includes lagged differences to account for serial dependence. Depending on the application, it may include an intercept and a deterministic trend. The unit-root null concerns the coefficient on the lagged level.

ΔYt = a + bt + γYt−1 + ∑i=1pδiΔYt−i + ut
H₀: γ = 0; stationary alternative within the specified model: γ < 0

Use Dickey–Fuller/MacKinnon critical values rather than ordinary Student t thresholds. The official ADF documentation distinguishes the deterministic specifications and reports appropriate p-values and critical values. Importantly, the trend choice changes the relevant reference distribution.

Worked example 14: interpret a unit-root decision correctly

Suppose an ADF run returns a statistic of −2.40 and a 5% critical value of −2.89. These numbers are hypothetical outputs from a specified test, not a universal critical-value table. Because −2.40 is less negative than −2.89, you fail to reject the unit-root null.

Now suppose the first-difference test returns −4.80 against its applicable threshold of −2.89. You reject the unit-root null for the differences. Together, the results support treating the original series as I(1), subject to specification and power limitations.

“Fail to reject” does not mean “prove” or “accept as certain.” A short sample may struggle to separate a coefficient of 0.98 from 1.00. Moreover, a structural break can complicate the evidence from a standard test.

Use KPSS as a complementary perspective

KPSS reverses the usual null: it tests level or trend stationarity, depending on the specification. Therefore, comparing ADF and KPSS can reveal cases where the evidence deserves more investigation. The official KPSS documentation states the alternative specifications and their interpretation.

Use compatible deterministic specifications; this is an interpretive guide, not a mechanical classification rule
ADF outcomeKPSS outcomeReasonable reading
Reject unit rootFail to reject stationarityEvidence generally favors the specified stationary model
Fail to reject unit rootReject stationarityEvidence generally favors nonstationarity
Fail to reject unit rootFail to reject stationarityInconclusive; investigate power and sample length
Reject unit rootReject stationarityPotential conflict; inspect breaks, trends, and specifications

Worked example 15: discover the cost of unnecessary differencing

Suppose Yt already consists of white noise with variance σ². Differencing produces Zt = εt − εt−1. Although the original series had no serial correlation, its difference now has negative lag-one correlation.

Var(Zt) = 2σ²
Cov(Zt, Zt−1) = −σ²
ρ1 = −σ²/(2σ²) = −0.5

Thus, unnecessary differencing doubles the variance in this example and creates an MA(1) at the invertibility boundary. A large negative first ACF spike after differencing can be a warning sign. However, it is not conclusive evidence on its own.

Cointegration: a stable relationship between wandering series

Two I(1) variables can share a stationary linear combination. When they do, we say they are cointegrated. Their individual levels may wander, but their deviation from a particular long-run relationship does not contain the same persistent stochastic trend.

Yt = α + βXt + et
Xt, Yt are I(1), while et is I(0)

The 2003 economics prize recognized Clive Granger’s work on methods for analyzing economic time series with common trends. In addition, the Royal Swedish Academy of Sciences announcement places cointegration alongside Robert Engle’s work on changing volatility. Together, these contributions highlight how time-series problems extend beyond a regression’s average fit.

Worked example 16: construct cointegration from a shared trend

Define Xt as a random walk. Separately, define ut = 0.5ut−1 + ηt as a stationary disturbance, with innovations independent of X’s shocks. Finally, construct Yt = 5 + 2Xt + ut.

Yt − 5 − 2Xt = ut ∼ I(0)

Both levels inherit the random walk’s stochastic trend. Nevertheless, subtracting twice X and the intercept from Y cancels that trend exactly. Therefore, the pair is cointegrated by construction.

High correlation alone does not establish this property. You must identify a stationary combination, not merely two lines that look alike. Likewise, cointegration does not automatically establish which variable causes the other.

Test estimated residuals with cointegration-specific critical values

The Engle–Granger approach estimates the long-run equation and then tests its residuals for a unit root. However, those residuals come from estimated coefficients. As a result, their test does not use the same critical values as an ordinary ADF test on an observed series.

The statsmodels cointegration test uses a null of no cointegration and assumes I(1) inputs. Its p-values and critical values account for the residual-based setting. This is preferable to treating an ordinary residual ADF p-value as a valid Engle–Granger result.

For a larger system, several long-run relationships may exist. In that setting, a system method such as Johansen’s approach can be more appropriate than choosing one dependent variable and running a single residual regression. The number of variables and the research question determine the next step.

Error correction connects short-run changes to long-run gaps

An error-correction model, or ECM, includes a lagged equilibrium deviation alongside short-run changes. Define that deviation before interpreting its coefficient. Here, a positive gap means Y lies above its long-run value given X.

et−1 = Yt−1 − α − βXt−1
ΔYt = a + bΔXt + λet−1 + short-run lag terms + ut

With this definition, a negative λ pushes an above-equilibrium Y downward, all else equal. A positive coefficient instead pushes it upward in this single-equation, fixed-X interpretation. Reversing the residual definition reverses the coefficient’s expected sign.

Worked example 17: interpret adjustment and calculate its half-life

Suppose the model is ΔYt = 0.40ΔXt − 0.25et−1, with no intercept or additional lags. Let X remain fixed and begin with a 10-unit equilibrium gap. Therefore, the first predicted change in Y is −2.5, leaving a gap of 7.5.

et = (1 + λ)et−1 = 0.75et−1
h½ = ln(0.5)/ln(0.75) ≈ 2.41 periods
Original conditional adjustment experiment: X fixed; no new shocks or other dynamic terms
PeriodGap with λ = −0.25Gap with λ = +0.12
010.000010.0000
17.500011.2000
25.625012.5440
34.218814.0493
43.164115.7352
52.373017.6234

Under these restrictive assumptions, convergence requires |1 + λ| < 1, or −2 < λ < 0. The narrower range −1 < λ < 0 gives smooth convergence without sign changes. By contrast, −2 < λ < −1 implies convergent overshooting.

A richer ECM can include additional lags, feedback through X, and several equilibrium relationships. In those models, stability depends on the full dynamic system. Consequently, a single-equation sign check is a useful diagnostic, but it is not a substitute for system stability analysis.

2026-11-03T19:19:03.592135 image/svg+xml Matplotlib v3.10.8, https://matplotlib.org/ 0 2 4 6 8 10 Periods after an initial 10-unit gap 0 5 10 15 20 25 30 Remaining gap Check the sign: a positive coefficient can widen the gap λ = −0.25: correction λ = +0.12: divergence
Original conditional illustration. The positive coefficient amplifies the gap under this residual definition and these fixed-X assumptions.

An important audit of the supplied CPI example

The final photographed exercise reports an ECM coefficient of +0.12 on the lagged residual, with a t-statistic of 0.96. Under e = Y − Ŷ and the simple conditional interpretation above, that estimate does not demonstrate stabilizing adjustment in Y. Moreover, the reported t-statistic provides weak evidence against a zero coefficient under conventional inference.

This observation does not prove that the original calculation contains a typographical error. A different residual orientation, joint adjustment through X, or weak small-sample estimates could change the interpretation. Therefore, the appropriate conclusion is to inspect the residual definition, equation specification, and underlying estimation before describing the coefficient as a “12% correction.”

The same example uses city CPI levels from January 1998 through December 2000, which gives only 36 monthly observations before losing observations to lags. That is a small sample for distinguishing long-run persistence and adjustment. The historical table is useful for teaching, but it cannot establish a current relationship between those cities.

There is also a measurement issue: city CPI index levels do not measure which city has a higher cost of living. The BLS CPI questions and answers explains that area indexes measure price change relative to their respective bases. For example, indexes of 170 and 160 indicate different cumulative changes from the base, not that one city’s consumer basket currently costs 6.25% more.

Worked example 18: derive an ECM from a dynamic regression

Start with a simple autoregressive distributed-lag model. Assume 1 − ρ is nonzero and the resulting equilibrium deviation is stationary. Subtract the lagged dependent variable and use Xt = Xt−1 + ΔXt to rearrange the equation.

Yt = c + ρYt−1 + b₀Xt + b₁Xt−1 + ut
ΔYt = c + (ρ − 1)Yt−1 + b₀ΔXt + (b₀ + b₁)Xt−1 + ut

Define the long-run intercept and slope as α = c/(1 − ρ) and β = (b₀ + b₁)/(1 − ρ). Then factor the level terms. This yields the error-correction representation directly.

ΔYt = b₀ΔXt + (ρ − 1)[Yt−1 − α − βXt−1] + ut

For c = 1, ρ = 0.6, b₀ = 0.3, and b₁ = 0.5, the long-run intercept is 2.5 and the long-run slope is 2.0. Meanwhile, the short-run impact is 0.3 and the adjustment coefficient is −0.4. These three quantities describe different parts of the same model.

ΔYt = 0.3ΔXt − 0.4[Yt−1 − 2.5 − 2Xt−1] + ut

The algebra alone does not establish cointegration or justify a causal interpretation. You still need the relevant integration properties and assumptions about the regressors and innovations. Nevertheless, it shows why differencing a valid long-run model without retaining the equilibrium term can omit important information.

Granger causality: predictive information is not structural causation

X Granger-causes Y when past X values add predictive information for Y beyond the other history included in the model. The phrase concerns a specified information set. It does not automatically mean that intervening on X would change Y.

Yt = a + ∑i=1pφiYt−i + ∑j=1qβjXt−j + ut
H₀: β₁ = β₂ = … = βq = 0

The official Granger-causality test documentation describes this joint restriction. In practice, test direction matters: evidence for X predicting Y does not imply that Y also predicts X.

Worked example 19: calculate a joint Granger test

Assume a correctly specified stationary regression with 100 usable observations. The restricted model has RSS = 120, while the unrestricted model has RSS = 100 and five estimated coefficients. Adding two lagged X terms imposes two restrictions under the null.

F = [(RSSR − RSSU)/q] / [RSSU/(T − kU)]
F = [(120 − 100)/2] / [100/95] = 9.50

The approximate p-value under an F(2, 95) reference is 0.000173. Therefore, this hypothetical example rejects the joint exclusion of lagged X at 5%. The conclusion concerns incremental predictive information within the specified regression.

For integrated variables, do not apply the same stationary-regression test mechanically to levels. Cointegrated systems generally require an appropriate error-correction framework, where short-run lag effects and long-run adjustment involve distinct restrictions. Suitable alternative procedures also exist, but their assumptions must match the integration structure.

Publication timing creates another practical trap. A variable labeled “March” may become available only in April. Consequently, using its March observation to predict a March outcome can accidentally give the model information that a real forecaster did not yet possess.

A practical workflow for time series methods

Choose the model family from the statistical question

A model-selection map; no single diagnostic determines every choice
Evidence or goalCandidate approachEssential check
Stationary univariate dynamicsAR, MA, or ARMAResidual dependence and stable parameters
Unit root with stationary differencesARIMAAvoid unnecessary differencing
Seasonal structureSeasonal ARIMA or a suitable seasonal modelCorrect seasonal period and calendar effects
Several stationary variablesVAR or dynamic regressionLag order, identification, and residuals
I(1) variables with cointegrationECM or VECMCointegration rank and adjustment dynamics
I(1) variables without cointegrationSuitable model in stationary differencesWhether differenced innovations retain dependence
Policy or treatment effectA credible causal design with time-series controlsIdentification beyond temporal ordering

ARIMA(p, d, q) describes a model with d regular differences and ARMA dynamics for the transformed series. Seasonal ARIMA adds seasonal orders and a seasonal period. For monthly data, a common annual seasonal difference is Yt − Yt−12.

Specifically, an ARIMA(1,1,0) applies one regular difference and then fits an AR(1) to that change. It does not mean the original level is a stationary AR(1). Keeping that distinction explicit prevents confusion when explaining a forecast to a nontechnical reader.

Build a chronological validation design

Keep the evaluation period later than the estimation period. Randomly shuffling observations can mix future information into model development. Instead, use a fixed holdout or repeated forecast origins that respect the timeline.

For example, train on months 1–60 and predict month 61, then train on months 1–61 and predict month 62. Repeat the process through the evaluation window. If the business needs three-month-ahead forecasts, evaluate that horizon directly rather than relying only on one-step results.

Hyndman and Athanasopoulos describe rolling-origin time-series validation. This approach evaluates the forecasting task while preserving the order in which information arrives. All preprocessing and tuning must also stay inside the relevant training window.

Compare against a baseline and report understandable errors

A complex model should earn its complexity by outperforming a relevant baseline. For a random walk, the last observed value is the natural no-drift forecast. Meanwhile, for a strongly seasonal series, last year’s value for the same season provides another useful benchmark.

MAE = (1/H)∑|Yt − Ŷt|
RMSE = √[(1/H)∑(Yt − Ŷt)²]

Suppose three forecast errors equal 2, −1, and 3. Their MAE is 2, while their RMSE is √(14/3), or about 2.16. Because RMSE squares errors, a few large misses can dominate it more strongly.

Choose the metric that matches the decision. An inventory planner may care more about costly shortages than symmetric average errors. Moreover, avoid percentage errors when actual values can equal zero or approach it closely.

Prediction intervals reveal what point forecasts hide

For the known-parameter stationary AR(1) from example 1, the h-step forecast error accumulates future shocks with declining weights. Therefore, its conditional variance is:

Var(YT+h − ŶT+h|T) = σ²∑j=0h−1φ2j = σ²(1 − φ2h)/(1 − φ²)

With φ = 0.8 and σ² = 4, the one-step standard deviation is 2. The three-step variance equals 4(1 + 0.64 + 0.4096) = 8.1984, giving a standard deviation of about 2.8633. Under Gaussian innovations and known parameters, the three-step forecast of 12.56 has an approximate 95% interval from 6.95 to 18.17.

Estimated parameters create additional uncertainty that this simple calculation ignores. Changes in the economic environment can widen the practical gap further. Consequently, a narrow model-based interval should never substitute for an examination of assumptions.

Audit the data before you audit the model

Data-quality checklist for economic and business series
Data issueWhy it mattersPractical response
Missing datesLags no longer represent a constant intervalCreate a regular calendar and document gaps
Revised economic releasesLatest data can reveal information unavailable historicallyUse real-time vintages when evaluating historical forecasts
Seasonal adjustmentAdjusted and unadjusted series answer different questionsKeep transformations consistent
Units and base yearsRebasing or mixing nominal and real values changes meaningRecord units, transformations, and definitions
Structural breaksOne coefficient may average incompatible regimesInspect events, stability, and subsamples
Zero or negative valuesOrdinary logarithms become invalidChoose a transformation appropriate to the measurement
AggregationMonthly averages and month-end values differMatch timing and aggregation rules

Document every transformation in the order applied. For example, a log difference approximates a proportional growth rate, while an ordinary first difference remains in the original units. Confusing the two can turn a correct coefficient into an incorrect business interpretation.

If a positive level increases from 100 to 110, its ordinary percentage change is 10%. The log change is ln(110) − ln(100), or approximately 0.09531; multiplying by 100 gives 9.531 log points. However, the approximation becomes closer for smaller changes.

Ten mistakes that can invalidate an otherwise polished analysis

  1. Equating a high R-squared with a valid relationship. Check stochastic trends and the assumptions behind the inference first.
  2. Comparing MA coefficients without their signs. Translate the complete equations before interpreting a difference.
  3. Calling every AR process stationary. Verify its characteristic roots.
  4. Treating stationarity and invertibility as synonyms. They concern different model properties.
  5. Using ordinary t critical values for a unit-root test. Apply the appropriate nonstandard distribution.
  6. Calling failure to reject proof of a unit root. Consider power, trends, and structural breaks.
  7. Using ordinary ADF residual p-values as cointegration evidence. Use residual-based cointegration inference.
  8. Describing any ECM coefficient as correction. Check the residual orientation and dynamic stability.
  9. Interpreting Granger causality as an intervention effect. Separate predictive content from structural identification.
  10. Selecting a model with future information. Preserve chronology throughout preprocessing, estimation, and validation.

Frequently asked questions about time series methods

What is the difference between ARMA and ARIMA?

ARMA models stationary dynamics through autoregressive and moving-average terms. ARIMA adds differencing, represented by d, before modeling those dynamics. Thus, ARIMA(p, 0, q) corresponds to ARMA(p, q) under matching conventions.

Is a moving-average model the same as a rolling average?

No. An MA model uses current and past innovations. A rolling average smooths observed data over a window. Although both names contain “moving average,” their statistical roles differ.

Can a stationary series have a trend?

A nonconstant deterministic mean violates weak stationarity of the raw level. However, the deviations around a deterministic trend can be stationary. In that case, “trend-stationary” describes the process after accounting for that trend.

Does a nonsignificant Ljung–Box test prove the residuals are white noise?

No. It means the test did not find sufficient evidence of autocorrelation over the selected lags. Other dependence patterns, variance changes, or limited power can remain. Therefore, inspect several aspects of the residuals and the forecasting results.

Can two series be cointegrated without moving in a one-to-one ratio?

Yes. The stationary combination can involve a coefficient other than one and can include an intercept or suitable deterministic terms. For example, Y − 5 − 2X is stationary in the constructed example above.

Should I difference two cointegrated variables?

An ECM often models their differences while retaining a lagged long-run equilibrium term. Simply regressing one difference on another can omit that adjustment information. Therefore, cointegration changes how the differenced model should be specified.

Does a positive error-correction coefficient always mean instability?

No universal interpretation applies without the residual definition and the complete system. In the simple fixed-X model with e = Y − α − βX, a positive coefficient amplifies the gap. Reversing that definition reverses the sign, while joint dynamics require a broader stability analysis.

How many observations do I need?

There is no universal minimum that guarantees reliable estimation. More parameters, longer seasonal cycles, strong persistence, and structural changes all increase the information requirement. Accordingly, keep small-sample models parsimonious and report uncertainty rather than relying on a single threshold.

Conclusion: model persistence before interpreting relationships

Time series methods work best when each decision follows from the process you are trying to understand. AR and MA terms describe how shocks propagate, while unit-root tests help assess whether those shocks accumulate. Cointegration then asks whether multiple persistent series share a stable long-run relationship.

Next, an ECM connects short-run changes to that relationship, and a Granger test examines additional predictive information. None of these tools eliminates the need to check signs, definitions, timing, and assumptions. The most useful model combines a coherent explanation with honest diagnostics and performance on genuinely later observations.

Sources, data provenance, and further reading

As the starting reference, the supplied photographs cover a chapter titled Time-Series Methods, pages 242–260. This article uses that material as its topic guide and identifies the few numerical examples drawn from it. Because the photographs do not establish the book’s full bibliographic details, this guide does not invent an author, edition, or publication year.

All other worked numerical scenarios and plotted curves are original teaching calculations, not estimates of current economic conditions. The external references below support the named methods and measurement cautions. In particular, the article distinguishes original derivations from historical textbook outputs and documentation examples.

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *