I'm trying to educate myself on Granger Causality. I've read the posts on this site and several good articles online. I also came across a very helpful tool, the Bivariate Granger Causality - Free Statistics Calculator, that allows you to enter your time series and calculate the Granger Stats. Below, is the output from the sample data included on the site. I have also taken a crack at interpreting the results.

My Questions:

  • Is my interpretation directionally correct?
  • What key insights have I overlooked?
  • Also what is the meaning and interpretation of the CCF charts? (I'm assuming CCF is cross correlation.)

Here are the results and plots that I have interpreted:

Summary of computational transaction
Raw Input   view raw input (R code)
Raw Output  view raw output of R engine
Computing time  2 seconds
R Server    'Herman Ole Andreas Wold' @ wold.wessa.net

Granger Causality Test: Y = f(X)
Model   Res.DF  Diff. DF    F   p-value
Complete model  356         
Reduced model   357 -1  17.9144959720894    2.94360540545316e-05

Granger Causality Test: X = f(Y)
Model   Res.DF  Diff. DF    F   p-value
Complete model  356         
Reduced model   357 -1  0.0929541667364279  0.760632773377753

enter image description here enter image description here enter image description here

My interpretation:

  • Test was based upon 357 data points and was performed with a lag value of 1
  • The p-value of 0.0000294 means I can reject the null hypothesis that x does not cause y for the Y = f(x).
  • The p-value of .76 allows me to accept the null for X = f(Y)
  • The fact that first hypothesis was rejected and second accepted is a good thing
  • I'm a little rusty on my F-test so I don't really have anything to say on this for now.
  • I'm also not sure how to interpret the CCF graph.

I really appreciate it if any of you who are well versed with Granger-causality could let me know if I'm interpeting this correctly and also fill in some of the blanks.

Thanks for your help.


Caveat: I'm not particularly well-versed in Granger causality, but I am generally statistically competent and I have read and mostly understood Judea Pearl's Causality, which I recommend for more info.

Is my interpetation directionaly correct

Yes. The fact that first hypothesis was rejected and second was not means that you can use $X$ to forecast $Y$.

What key insights have I overlooked

The really important thing to know in terms of key insights is that Granger-causation is only equivalent to causation (in the more common use of the term) under a fairly restrictive assumption, viz, that there are no other potential causes. If this assumption is not satisfied then Granger-causality is actually Granger-usefulness-for-forecasting. For example, if there is a variable $Z$ that causally influences both $X$ and $Y$, then the conclusion that $Y$ Granger-causes $X$ can be explained as the influence of $Z$ being felt in $Y$ before it's felt in $X$.

The p-value of .76 allows me to accept the null for X = f(Y)

Warning: esoteric bullshtatistical blathering follows. Technically, in the test of $X = f(Y)$ you can't "accept the null". You can "fail to reject the null" -- that is, you didn't find evidence that would warrant rejecting the null. This is the Fisherian view. Alternatively, you can take the Neymanian view: you don't assert the truth of the null; you just choose to act as if the null were true. (Personally I'm a Jaynesian, but let's not get into that.)

I'm a little rusty on my F-test

The point of the F-test is that it checks that the lagged values of $X$ jointly improve the forecast of $Y$ (or vice versa). One can imagine predicting $Y$ with two predictors $X_1$ and $X_2$ where $X_2$ is just $X_1$ with a bit of added noise. The F-test would compare a model with just $X_1$ (or just $X_2$) with the model containing both and find no evidence of improved prediction in the larger model.

I'm also not sure how to interpret the CCF graph

The plots of the auto-correlation and cross-correlation functions provide a rough graphical equivalent to the t-tests used in the testing procedure. In order to understand what is being plotted, it's first necessary to understand correlation as a measure of the linear relationship between two random variables. The cross-correlation function is just the correlation of one time series versus a lagged version of the other, and the auto-correlation is just the cross-correlation of a function and itself. Thus these plots show the time structure of the strength of the linear relationships both internally (auto) and from one to the other (cross). I can see from the autocorrelation plots, for example, that $Y$ is reasonably smooth but has no other particularly strong internal structure, whereas $X$ has an oscillation with a peak-to-peak period of about 120 time steps (because it is negatively correlated with itself at about 60 time steps).

  • 2
    $\begingroup$ This was a great answer. Thanks for the effort. I will definitely checkout the reference you mentioned. $\endgroup$ – Mutuelinvestor Mar 17 '12 at 11:24
  • $\begingroup$ To signal that I've answered your question, click the checkmark next to my answer. $\endgroup$ – Cyan Mar 17 '12 at 13:51
  • $\begingroup$ i have a simple question on this so i dont think i have to open a new question. I would like to know if i can use granger test for the following. I have 2 time series. Lets say $Y_{t1}, Y_{t2}$. Can i test for $Y_{t1}\sim Y_{t2}$ and if the null is rejected, to claim that the two time series came from the same stochastic process? $\endgroup$ – Christos May 26 '14 at 13:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.