Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Pandas Granger Causality

I would like to perform a Granger Causality test on time series data using Python Pandas and I have two questions.

(1) I have tried using the pandas.stats.var package, but that seems to be deprecated. Are there any other recommended options?

(2) I'm having difficulty interpreting the output of the VAR.granger_causality() function in the pandas.stats.var package. The only reference I could find is a comment in the source code that says:

   Returns the f-stats and p-values from the Granger Causality Test.
   If the data consists of columns x1, x2, x3, then we perform the
   following regressions:
   x1 ~ L(x2, x3)
   x1 ~ L(x1, x3)
   x1 ~ L(x1, x2)
   The f-stats of these results are placed in the 'x1' column of the
   returned DataFrame.  We then repeat for x2, x3.
   Returns
   -------
   Dict, where 'f-stat' returns the DataFrame containing the f-stats,
   and 'p-value' returns the DataFrame containing the corresponding
   p-values of the f-stats.

For example, the output of a trial run is shown below:

p-value:
          C         B         A
A   0.472122  0.798261  0.412984
B   0.327602  0.783978  0.494436
C   0.071369  0.385844  0.688292

f-stat:
          C         B         A
A   0.524075  0.065955  0.680298
B   0.975334  0.075878  0.473030
C   3.378231  0.763898  0.162619

I understand that each cell in the p-value table corresponds to a cell in the f-stat table, but I do not understand what the cells in the f-stat table refer to. For example, what does the value 0.52 in column C, row A mean?

like image 788
agg212 Avatar asked Mar 01 '16 16:03

agg212


People also ask

How do you interpret Granger causality results?

The Granger causality test is a statistical hypothesis test for determining whether one time series is useful for forecasting another. If probability value is less than any level, then the hypothesis would be rejected at that level.

Is Granger causality really about causality?

Granger causality is a way to investigate causality between two variables in a time series. The method is a probabilistic account of causality; it uses empirical data sets to find patterns of correlation. Causality is closely related to the idea of cause-and-effect, although it isn't exactly the same.

What is toda Yamamoto causality test?

Toda-Yamamoto (TY) Causality The cointegration test verifies the existence of long-term equilibrium relationships between variables. If there is a cointegration relationship, a long run equilibrium relationship or ECM is applied.


1 Answers

  • (Null hypothesis) H0: Xt does not granger causes Yt.
  • (Alternate hypothesis) H1: Xt granger causes Yt.

If P-value is less than 5% (or 0.05), then we can reject the Null hypothesis (H0), and can conclude that Xt granger causes Yt.

So where ever your P-value is less than 0.05, you can consider those features.

like image 114
debaonline4u Avatar answered Sep 21 '22 08:09

debaonline4u