3.7 | 6 ratings Rate this file 103 Downloads (last 30 days) File Size: 2.31 KB File ID: #25467 Version: 1.3

Granger Causality Test


Chandler (view profile)

  • 1 file
  • 3.66667


01 Oct 2009 (Updated )

Conducts a Granger Causality test using the Bayesian Information Criterion to select lag length

| Watch this File

File Information

GRANGER_CAUSE is a Granger Causality Test. The null hypothesis is that the y does not Granger Cause x. A user specifies the two series, x and y, along with the significance level and the maximum number of lags to be considered. The function chooses the optimal lag length for x and y based on the Bayesian Information Criterion. The function produces the F-statistic for the Granger Causality Test along with the corresponding critical value. We reject the null hypothesis that y does not Granger Cause x if the F-statistic is greater than the critical value. Type help granger_cause to learn more.

MATLAB release MATLAB 7.8 (R2009a)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (9)
20 Oct 2015 samar habibi  
14 Apr 2015 Marta Palka

Hi Chandler, I have a question re max_lag. Does this number relates to the frequency of my data, i.e. if I specify that max_lag=1 and my input is daily data, does this mean I am allowing 1 day lag? thanks

Comment only
03 Dec 2014 Milad Ekramnia

How should I determine the significance level?

Comment only
30 Mar 2014 Weihai Yu

Dear Chandler

Thank you for your great contribution.
Yet I have a question concerning calculating F-statistic,
the parameters for numerator and denominator as at the end of the function
are y_lag and x_lag+y_lag+1.
I read in Wikipedia which says "the simple linear model y = mx + b has p=2 ", if Wikipedia
is right, then the parameters should be "y_lag+1 and x_lag+y_lag+2"

could you please explain this in a simple way? I am quite confused.

04 Feb 2012 LangS

LangS (view profile)

This function uses Matlab function "regress" which assumes a constant term(intercept) in the linear regression and therefore violates Granger causality definition(See Granger's original paper, Econometrica 37:3 424-438, 1969).

I applied this function on two random numbers series (10 time points, lag = 2) and repeated 1000 times (every time the two series are different), and set the alpha value as 0.05. Among the 1000 tests, 400 were found to have "Granger causality"! So I think the result is not reliable.

05 Aug 2011 Wolfgang

Dear Chandler, I have gratefully downloaded your script. How would it be possible to also include a stationarity check into the routine or would you recommend to check stationarity of the series beforehand? Many thanks, Wolfgang

18 Mar 2010 Chandler

Chandler (view profile)

  • 1 file
  • 3.66667

William, there was a small error in the selection of the lag lengths using the BIC. It should be fixed as of 03/18/2010

Comment only
20 Feb 2010 William Gruner

This appears to calculate the same x and y lags regardless of the actual lags present between the two vectors. In addition, the F statistic generated by the function only appears valid for specific (small) lags. The test I used involved a simple pair of sinusoids phase-shifted to various degrees with and without a small amount of Gaussian noise.

02 Oct 2009 Luna Bella

I like how the author uses the Bayesian Information criterion to select the lag length which is a consistent model selection criterion

20 Oct 2009 1.1

A correction was made in the calculation of the critical value from the F-distribution

18 Mar 2010 1.2

There was an error in selecting the lag length for the BIC. It is now fixed. I would like to thank Mads for pointing out the bug.

18 Mar 2010 1.3

There was an error in the calculation of the lengths of the BIC. It is now fixed. I would like to thank Mads for pointing out the bug.

Contact us