Time Series Foundations intermediate 7 min read 7 flashcards

Vector Autoregression and Granger Causality

How a VAR models several series as jointly driven by their own pasts, what a Granger causality test actually establishes, and the specific ways predictive precedence differs from causation.

Christmas card sales rise every November and Christmas arrives every December. Past card sales predict the holiday, so card sales "Granger-cause" Christmas. The example is silly on purpose: the test measures whether one series' past improves prediction of another, and prediction can run backwards from the true causal order whenever people act on expectations. Much of the misuse of vector autoregressions comes from forgetting that.

The model

A VAR(\(p\)) treats \(K\) series as one vector \(y_t \in \mathbb{R}^K\) regressed on its own lags:

\[y_t = c + A_1 y_{t-1} + A_2 y_{t-2} + \dots + A_p y_{t-p} + u_t, \qquad u_t \sim (0, \Sigma_u)\]

Each \(A_j\) is a \(K \times K\) matrix; entry \((i, k)\) of \(A_j\) says how the \(j\)-th lag of series \(k\) enters the equation for series \(i\). The errors \(u_t\) are serially uncorrelated but contemporaneously correlated through \(\Sigma_u\). With no restrictions, every equation has the same regressors, so ordinary least squares equation by equation is efficient.

Sims introduced VARs to macroeconomics as a protest against large structural models whose identifying restrictions he called incredible: rather than impose which variable is exogenous, let every variable depend on the past of every other and see what the data say (Sims, 1980, Macroeconomics and Reality, Econometrica 48(1)).

The price is parameters. A VAR has \(K^2p\) slope coefficients plus \(K\) intercepts. Three variables with four lags is 36 slopes; twenty variables with four lags is 1,600. With forty years of quarterly data, 160 observations, each of the twenty equations would estimate 81 coefficients from 160 points. Litterman's Minnesota prior, which shrinks each series toward a random walk and shrinks other variables' lags harder than own lags, is the classical fix and made Bayesian VARs viable forecasting tools (Litterman, 1986, Forecasting With Bayesian Vector Autoregressions: Five Years of Experience, JBES 4(1)).

What Granger causality tests

Granger's definition is about information: \(x\) Granger-causes \(y\) if the past of \(x\) improves the prediction of \(y\) beyond what the past of \(y\), and of everything else in the information set, already provides (Granger, 1969, Investigating Causal Relations by Econometric Models and Cross-spectral Methods, Econometrica 37(3)).

In a VAR this becomes a zero restriction. In the equation for \(y\), test

\[H_0: a^{(1)}_{yx} = a^{(2)}_{yx} = \dots = a^{(p)}_{yx} = 0\]

with an F or Wald test on \(p\) restrictions. In a bivariate VAR(4) fitted to 200 observations, the unrestricted \(y\) equation has 9 coefficients, so the F statistic has 4 and 191 degrees of freedom and a 5% critical value of about 2.4. Rejecting says lags of \(x\) carry predictive information for \(y\) in this model on this sample. Nothing more.

Two related tools depend on further assumptions. Impulse responses trace how a shock to one variable propagates, but the shocks in \(u_t\) are correlated, so they must be orthogonalised, usually by a Cholesky factorisation of \(\Sigma_u\). That imposes a recursive causal ordering among contemporaneous variables, and reordering the variables changes the responses. Forecast error variance decompositions inherit the same ordering dependence.

What it is not

The distinction to hold onto is between predictive precedence and intervention. The companion concept on the do-operator formalises the second; Granger causality is entirely about the first.

Omitted variables manufacture it. If \(z\) drives both \(x\) and \(y\) with different delays, \(x\) Granger-causes \(y\) in a bivariate VAR although intervening on \(x\) changes nothing. The definition is relative to the information set, so adding \(z\) can make the result vanish.

Expectations reverse it. Forward-looking behaviour, as in the Christmas example or asset prices anticipating policy, makes effects precede causes in the data.

Sampling frequency hides it or invents it. A causal effect within a month is invisible to monthly lags and shows up as contemporaneous correlation in \(\Sigma_u\) instead. Aggregating over time can also create apparent feedback that the underlying process does not have.

Absence proves little. Failing to reject is consistent with no effect, with an effect at a lag outside \(p\), with a nonlinear effect a linear VAR cannot see, and with low power.

When it breaks

Nonstationarity invalidates the usual test. If the series have unit roots, the Wald statistic does not have its standard distribution, and the familiar fix of differencing first throws away long-run relationships when the series are cointegrated (see stationarity and differencing). Toda and Yamamoto's procedure fits a VAR with \(p + d_{\max}\) lags, where \(d_{\max}\) is the maximum order of integration, and tests only the first \(p\), restoring a standard asymptotic distribution without pretesting for cointegration (Toda & Yamamoto, 1995, Statistical inference in vector autoregressions with possibly integrated processes, Journal of Econometrics 66(1-2)). It costs power, which is the tradeoff.

Lag length decides the answer. AIC, BIC and Hannan-Quinn frequently choose different \(p\), and Granger conclusions can flip between them. Reporting results across plausible lag lengths is more honest than reporting one.

High dimension turns into multiple testing. A 20-variable VAR supports 380 pairwise Granger tests. At 5% significance, 19 rejections are expected with no relationships at all, and "Granger causality networks" drawn from such output are often mostly noise without correction or shrinkage.

Structural breaks masquerade as dynamics. A policy regime change shifts coefficients; a VAR fitted across the break averages two different systems and its causal story describes neither.

Check yourself

7 flashcards for this concept

Click a card to reveal the answer.

Drill the whole track