Granger Causality

Module 9 · What did the added predictor buy us?

Gary Cornwall

Econ 6376 · The George Washington University

Part I · The predictive question

An added regressor can be informative without being a policy lever.

Where we are

yt=α+∑j=1pϕjyt−j+∑ℓ=1qβℓxt−ℓ+ϵty_t=\alpha+\sum_{j=1}^{p}\phi_jy_{t-j} +\sum_{\ell=1}^{q}\beta_\ell x_{t-\ell}+\epsilon_t

Mixing-board channel Today
Intercept and outcome memory Retain
Observed predictor history Ask whether it adds information
Current xtx_t, trend, explicit MA terms Off in this baseline

Module 8: specify an ARDL. Module 9: compare its predictive information.

What did the added predictor buy us?

This guy again!

Clive Granger

A series x1:Tx_{1:T} is said to “Granger cause” y1:Ty_{1:T} if past values of xtx_t have additional power in forecasting yty_t, after controlling for the past of yty_t.

How would we turn that question into a regression test?

In the ARDL for yy with qq lags of xx:

  • H0:β1=⋯=βq=0H_0:\beta_1=\cdots=\beta_q=0, written H0:x↛yH_0: x\not\rightarrow y
  • H1:H_1: at least one βℓ≠0\beta_\ell\ne0, written H1:x→yH_1: x\rightarrow y

Clive Granger beside a motorcycle, reproduced from the course archive.

Incremental, directional, conditional

Word What it adds to the question
Incremental Does xx help beyond the information already included?
Directional Predicting yy from xx differs from predicting xx from yy.
Conditional The answer depends on the other information available.

Our implementation: one-step, linear prediction with specified finite lags.

Name the outcome, horizon, and information set before naming the result.

A useful signal need not be a lever

An early report can reveal news that also changes the outcome.

  • The report helps a forecaster who has not observed that news.
  • Changing the recorded report need not change the underlying event.
  • Predictive evidence alone does not tell us what an intervention would do.
Would changing an initial-claims report itself change the number of unemployed people?

What happens within the period?

yt=α+∑j=1pϕjyt−j+β0xt⏟same period+∑ℓ=1qβℓxt−ℓ⏟past x: the Granger question+ϵty_t=\alpha+\sum_{j=1}^{p}\phi_jy_{t-j} +\underbrace{\beta_0x_t}_{\text{same period}} +\underbrace{\sum_{\ell=1}^{q}\beta_\ell x_{t-\ell}}_{\text{past }x\text{: the Granger question}}+\epsilon_t

  • The Granger test keeps only ℓ≥1\ell\ge1. Granger called the β0\beta_0 channel instantaneous causality.
  • A past-only test can miss a real within-period effect.
  • Same-period dependence alone does not reveal which variable moved first.
  • Coarser sampling (monthly rather than weekly) pushes more responses into the β0xt\beta_0x_t term.
If claims respond to a layoff wave within the same month as unemployment, which term picks it up?

Expectations can reverse the apparent story

Investors receive information about future dividends.

The stock price level today can incorporate that information before dividends tomorrow are observed.

  • Past prices help predict dividends, although prices do not affect dividends.
  • Past dividends do not help predict prices, although expected dividends set prices.
Which direction would the prediction test label, and what would that label mean?

Part II · The joint test

Keep the regression comparison fixed and remove one lag block.

Restricted and unrestricted fits

Unrestricted

yt=α̂U+∑j=1pϕ̂U,jyt−j+∑ℓ=1qβ̂U,ℓxt−ℓ+eU,ty_t=\hat\alpha_U+\sum_{j=1}^{p}\hat\phi_{U,j}y_{t-j} +\sum_{\ell=1}^{q}\hat\beta_{U,\ell}x_{t-\ell}+e_{U,t}

Restricted

yt=α̂R+∑j=1pϕ̂R,jyt−j+eR,ty_t=\hat\alpha_R+\sum_{j=1}^{p}\hat\phi_{R,j}y_{t-j}+e_{R,t}

Only the included xx-lag block is removed. Re-estimate the remaining coefficients.

The whole lag block

H0:β1=β2=⋯=βq=0H_0:\beta_1=\beta_2=\cdots=\beta_q=0

The alternative allows at least one included cross-lag coefficient to differ from zero.

If three predictor coefficients sum to zero, have we imposed this null?

No. Offsetting coefficients can still change predictions. The null sets each included coefficient to zero.

The same comparison

Hold fixed Why?
Outcome rows and transformations RSS values must refer to the same target observations.
Own lags and other controls Isolate the added predictor history.
Deterministic terms Preserve the intended nested models.

Build the complete lagged sample before fitting either regression.

What goes wrong if the restricted fit uses four more months?

Granger causality via an F-test

F=(RSSR−RSSU)/qRSSU/(n−kU)F=\frac{(RSS_R-RSS_U)/q}{RSS_U/(n-k_U)}

Quantity Meaning
qq Number of excluded predictor coefficients
nn Common usable observations
kUk_U All unrestricted regression coefficients, including the intercept

Reference: F(q,n−kU)F(q,n-k_U), approximately under suitable dynamic-regression conditions.

Count first, then calculate

n=120n=120. The unrestricted model has an intercept, two own lags, and three xx lags.

kU=6,q=3,n−kU=114k_U=6,\qquad q=3,\qquad n-k_U=114

With RSSR=108RSS_R=108 and RSSU=90RSS_U=90,

F=(108−90)/390/(120−6)=7.6.F=\frac{(108-90)/3}{90/(120-6)}=7.6.

pf(7.6, df1 = 3, df2 = 114, lower.tail = FALSE)
[1] 0.0001118079

An ARDL in action

For two own lags and three predictor lags:

restricted <- lm(y ~ y_l1 + y_l2,
                 data = common, na.action = na.fail)
unrestricted <- lm(y ~ y_l1 + y_l2 + x_l1 + x_l2 + x_l3,
                   data = common, na.action = na.fail)
anova(restricted, unrestricted, test = "F")

common contains the correctly dated lag columns and the shared complete sample.

Read the fitted models before reading the p-value.

Reverse the direction with another equation

xt=a+∑j=1pxρjxt−j+∑ℓ=1qyγℓyt−ℓ+ϵx,tx_t=a+\sum_{j=1}^{p_x}\rho_jx_{t-j} +\sum_{\ell=1}^{q_y}\gamma_\ell y_{t-\ell}+\epsilon_{x,t}

Test H0:γ1=⋯=γqy=0H_0:\gamma_1=\cdots=\gamma_{q_y}=0 in this separate scalar regression.

  • Evidence can appear in one direction or both.
  • A nonrejection can reflect weak information, a small sample, or an unsuitable model.
  • Neither directional pattern identifies policy effects by itself.

An in-sample test of a predictive idea

The F-test judges a predictive idea by in-sample fit. Why not test it out of sample?

  • Ashley, Granger & Schmalensee (1980): rely primarily on out-of-sample forecasts.
  • Trade-off: in-sample fit can reward overfitting; a pre-chosen holdout costs power.
Ashley & Tsang (2014) Cornwall et al. (2019)
Split at τ\tau; fit each side, predict the other; repeat over τ\tau Hold out a block; fit on the rest, minus the next pp rows
Pseudo-F from prediction errors, with bootstrap inference Posterior simulation of RMSPE/MAE; posterior odds

Both: every prediction uses data not used to fit that model, and nearly all the data are used.

Part III · Generate the evidence

We know the data-generating mechanism. The test sees one sample.

Generating some data

xt=0.55xt−1+ϵx,tx_t=0.55x_{t-1}+\epsilon_{x,t} yt=0.4yt−1+0.6xt−1+ϵty_t=0.4y_{t-1}+0.6x_{t-1}+\epsilon_t

for (t in 2:total) {
  x[t] <- 0.55 * x[t - 1] + epsilon_x[t]
  y[t] <- 0.4 * y[t - 1] + 0.6 * x[t - 1] + epsilon[t]
}

Independent standard-normal innovations. Retain 600 observations after burn-in.

Which history should help predict which outcome?

Comparing the mechanism and the sample

Added history F p-value
xx in the yy equation 259.355 <10−6<10^{-6}
yy in the xx equation 1.064 0.303

The true cross-lag coefficient is 0.6. Its estimate rounds to 0.600.

Change 0.6 to zero, keep the innovations, and re-estimate. Then shorten the sample.

Fitted residuals over the 600 observations from the known one-way simulation.

Fitted residuals over the 600 observations from the known one-way simulation.

An early signal of the same news

Let ztz_t be news and xtx_t a noisy report of it:

xt=zt+ηt,yt=0.4yt−1+0.8zt−1+ϵt.x_t=z_t+\eta_t,\qquad y_t=0.4y_{t-1}+0.8z_{t-1}+\epsilon_t.

The three disturbances are mutually independent standard-normal draws over time.

There is no xx term in the structural equation for yy.

Can yesterday’s report still improve today’s prediction?

What changes when we observe the news?

Information already available Add xt−1x_{t-1}?
Outcome history only The report reveals otherwise hidden news.
Outcome history and zt−1z_{t-1} The news itself is already known.
What happens to the population predictive contribution of xx?

It disappears in the second comparison. Its conditional population coefficient is zero. The two regressions answer different questions.

A true null can still be rejected

Information already available Sample p-value Population restriction
Own history only <10−6<10^{-6} xx adds predictive information.
Own history plus news 0.0157 xx adds no further information.

The second test rejects at 5%. It is a false rejection in this simulated sample.

The first finding is genuine predictive information, even though changing the recorded signal does not change the outcome mechanism.

Part IV · Claims and unemployment

Use the Module 8 data, then report the uncertainty the model leaves behind.

What exactly are we predicting?

yt=ΔUt,xt=100ΔlogCty_t=\Delta U_t,\qquad x_t=100\Delta\log C_t

Object Definition
UtU_t Monthly unemployment rate, in percent
CtC_t Mean of weekly initial claims whose week-ending Saturdays fall in month tt
yty_t Change in unemployment, in percentage points
xtx_t Approximately the percentage change in that monthly claims mean
Why would claims contain information beyond unemployment’s own history?

Dates on the data and dates on the clock

  • Training: January 1990–December 2017, 336 usable observations.
  • Evaluation: January 2018–December 2019, 24 observations.
  • Prediction begins after both previous-month measures have been released, before the target month’s unemployment release.

This is usually a nowcast of the current calendar month.

Revised historical caches support a pseudo-out-of-sample exercise, not a real-time vintage evaluation.

Timing can create or hide predictive direction

Data feature In this exercise Why it matters
Frequency CtC_t averages weekly claims before and after the mid-month CPS reference week A monthly “lag” is not a clean calendar lead
Seasonal adjustment BLS and DOL adjust each series separately Filtering can add or remove lagged correlation
Release timing Claims for month tt’s reference week are public about two weeks before UtU_t Our past-only design leaves them out on purpose

The forecast comparison therefore understates claims’ practical nowcasting value. Using xtx_t is the same-period question from Part I.

A quick look at the data

Training data from 1990 through 2017: changes in unemployment and log changes in the monthly mean of weekly claims, on separate scales.

Training data from 1990 through 2017: changes in unemployment and log changes in the monthly mean of weekly claims, on separate scales.
Working in changes is a specification choice. The stationarity checks and their qualifications are in the notes.

Fix the comparison before reading the result

Six own lags and three predictor lags in each outcome equation.

For unemployment change:

H0:β1=β2=β3=0H_0:\beta_1=\beta_2=\beta_3=0

Count Value
Common observations nn 336
Restrictions qq 3
Unrestricted coefficients kUk_U 10
Residual degrees of freedom 326
The main specification is inherited from Module 8’s exploratory work; it is not a fresh prespecified test.

The result and the diagnostic belong together

Added history and outcome F Nominal p BG(12) p
Claims growth in unemployment change 21.058 1.71×10−121.71\times10^{-12} 0.0031
Unemployment change in claims growth 1.804 0.1463 0.2549

BG(12) checks residual serial correlation through twelve lags.

The reverse result depends on lag choice. Nominal p-values with q=1q=1: 0.00518 at (p,q)=(3,1)(p,q)=(3,1) and 0.0286 at (6,1)(6,1); at the main (6,3)(6,3), 0.146. Fix lag lengths in advance.

How much weight can the tiny forward p-value carry when residual dynamics remain?

The forward specification fails this diagnostic. Report the nominal calculation and limitation; a validated Granger-causality verdict is not established here.

Forecast usefulness is a separate comparison

Observed unemployment and three one-step prediction series for 2018 and 2019, with fixed training coefficients.

Observed unemployment and three one-step prediction series for 2018 and 2019, with fixed training coefficients.

2018–2019 RMSE

Model RMSE
Own history 0.1129
Add claims 0.1057
No change 0.1099

Unemployment percentage points.

A modest improvement in this 24-month evaluation.

A lower in-sample RSS is mechanical. A lower held-out loss is an empirical result.

What would you report?

  1. The transformed outcome, units, dates, horizon, and available information.
  2. The complete lag block excluded, common sample, F statistic, and nominal p-value.
  3. The specification choices and diagnostics that support or limit interpretation.
  4. The separate held-out comparison, if one was made.
Rewrite “Claims cause unemployment, so reducing claims would reduce unemployment.”

Part V · Uses and limits

The predictive question travels across applications. Its interpretation still depends on the setting.

Economics and beyond

Setting Predictive question Interpretation issue
Money and income Does monetary history add information about activity? Same variables, different answer: yes for 1960s–70s data, no for 1970s–80s.
Unemployment and prices Does labor-market history improve price prediction? A predictive result alone does not identify a policy trade-off.
fMRI signals Does one region’s measured history help predict another’s? Blood-oxygen delays and sampling can affect the measured direction.
Granger causality has uses beyond economics. It retains the same information-based question.

A research connection

Cornwall, Mills, Sauley, and Weng (2019)

Predictive Testing for Granger Causality via Posterior Simulation and Cross-Validation

The Phillips-curve application finds some in-sample rejections alongside weak held-out predictive evidence.

What was predicted, against which benchmark, on which observations, and under which loss?
The method is on the Part II slide “An in-sample test of a predictive idea.” Coefficient restrictions and held-out performance measure different evidence.

Key takeaways

Granger causality concerns added predictive information relative to a stated history.

Test the whole included predictor-lag block, on the same observations, using a suitable model.

A test decision can be wrong. A nonrejection is not proof of no relationship.

Diagnostics and held-out prediction matter, and neither identifies an intervention effect by itself.

Call these tests of whether xx helps forecast yy, not whether xx causes yy. — after Hamilton (1994)

Next time: cointegration and error correction

Routine lag-exclusion inference can fail for integrated levels.

Differencing everything can also discard information about a shared long-run relationship.

Module 10: cointegration and error correction, through the same scalar ARDL.

What if two series wander, but their separation stays stable?
Preview only. The notes’ optional “Looking Ahead” section supplies the algebra.