VARResults.test_inst_causality(causing, signif=0.05) [source]

Test for instantaneous causality

  • causing – If int or str, test whether the corresponding variable is causing the variable(s) specified in caused. If sequence of int or str, test whether the corresponding variables are causing the variable(s) specified in caused.
  • signif (float between 0 and 1, default 5 %) – Significance level for computing critical values for test, defaulting to standard 0.05 level
  • verbose (bool) – If True, print a table with the results.

results – A dict holding the test’s results. The dict’s keys are:

”statistic” : float

The calculated test statistic.

”crit_value” : float

The critical value of the Chi^2-distribution.

”pvalue” : float

The p-value corresponding to the test statistic.

”df” : float

The degrees of freedom of the Chi^2-distribution.

”conclusion” : str {“reject”, “fail to reject”}

Whether H0 can be rejected or not.

”signif” : float

Significance level

Return type:



Test for instantaneous causality as described in chapters 3.6.3 and 7.6.4 of [1]. Test H0: “No instantaneous causality between caused and causing” against H1: “Instantaneous causality between caused and causing exists”.

Instantaneous causality is a symmetric relation (i.e. if causing is “instantaneously causing” caused, then also caused is “instantaneously causing” causing), thus the naming of the parameters (which is chosen to be in accordance with test_granger_causality()) may be misleading.

This method is not returning the same result as JMulTi. This is because the test is based on a VAR(k_ar) model in statsmodels (in accordance to pp. 104, 320-321 in [1]) whereas JMulTi seems to be using a VAR(k_ar+1) model.


[1] (1, 2) Lütkepohl, H. 2005. New Introduction to Multiple Time Series Analysis. Springer.

© 2009–2012 Statsmodels Developers
© 2006–2008 Scipy Developers
© 2006 Jonathan E. Taylor
Licensed under the 3-clause BSD License.