Granger-Sims Causality Tests |
Granger (1969) proposed a concept of “causality” based upon prediction error: \(X\) is said to Granger-cause \(Y\) if \(Y\) can be forecast better using past \(Y\) and past \(X\) than just past \(Y\). Sims (1972) proved the following: in the distributed lag regression
\begin{equation} Y_t = \sum\limits_{j = - \infty }^\infty {b_j X_{t - j} } + u_t \label{eq:hypos_SimsCausality} \end{equation}
\(b_j = 0\) for all \(j<0\) if and only if \(Y\) fails to Granger-cause \(X\).
“Cause” is a loaded term, and many articles have been written about whether this concept is a proper definition of causality. Regardless, the test is important for several reasons:
•Certain theories predict absence of Granger causality from one variable to another. Such a theory can be rejected if causality is found.
•It is a specification test in distributed lag models such as \eqref{eq:hypos_SimsCausality}. If the coefficients on future \(X\) are non-zero, then a one-sided \(Y\) on \(X\) regression is a poorly specified dynamic relationship. Also, if the test fails, attempts to correct for serial correlation in estimating a one-sided distributed lag are likely to produce inconsistent estimates.
•Its relationship to prediction is important in building good, small forecasting models.
Testing Methods
The two basic methods for causality testing are:
•The “Granger test” regresses \(Y\) on lagged \(Y\) and lagged \(X\) and tests lags of \(X\).
•The “Sims test” regresses \(X\) on past, present and future \(Y\), and tests leads of \(Y\).
The example file CAUSAL.RPF looks at the GDP-M1 causality question. With both series in logs, an eight lag Granger test (for M1 causing GDP) can be done with
linreg gdph
# constant gdph{1 to 8} fm1{1 to 8}
exclude(title="Granger Causality Test")
# fm1{1 to 8}
A Sims test (following the procedure outlined in the paper) and using eight lags and testing four leads is done with
set filtm1 = fm1-1.50*fm1{1}+.5625*fm1{2}
set filtgdp = gdph-1.50*gdph{1}+.5625*gdph{2}
*
linreg filtm1
# constant filtgdp{-4 to 8}
exclude(title="Sims Causality Test")
# filtgdp{-4 to -1}
Note that the dependent variable and the tested variable are reversed between the two tests.
While the two testing procedures are equivalent theoretically, they are different in practice, because they must be estimated using finite parameterizations of the autoregression (for Granger) and distributed lag (for Sims), which do not directly correspond. Geweke, Meese and Dent (1982) examined several forms of causality tests and found that the Sims test was sensitive to failure to correct for serially correlated residuals. They proposed as an alternative a test using a two-sided distributed lag augmented with lagged dependent variables. Although the lag distribution on X is changed completely by the addition of the lagged dependent variables, the X coefficients are still one-sided under the null. This is also done on the original (logged here) variables rather than pre-filtered ones.
linreg fm1
# constant gdph{-4 to 8} fm1{1 to 8}
exclude(title="Geweke-Meese-Dent Causality Test")
# gdph{-4 to -1}
See Causality Testing for a discussion of extensions of this idea to more than two series, panel data and non-linear models.
Copyright © 2025 Thomas A. Doan