Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
YStrano
GitHub Repository: YStrano/DataScience_GA
Path: blob/master/lessons/lesson_17/Granger Causality.ipynb
1904 views
Kernel: Python 3

Chicken and Eggs and Granger Causality

Data set on US egg production and estimates of US chicken population.

%matplotlib inline import pandas as pd import numpy as np from statsmodels.tsa.stattools import grangercausalitytests df = pd.read_csv('data/ChickEgg.csv') df.head()
/anaconda3/lib/python3.6/site-packages/statsmodels/compat/pandas.py:56: FutureWarning: The pandas.core.datetools module is deprecated and will be removed in a future version. Please use the pandas.tseries module instead. from pandas.core import datetools
df.set_index('DATE', inplace=True) df.plot(subplots=True)
array([<matplotlib.axes._subplots.AxesSubplot object at 0x10f9db9b0>, <matplotlib.axes._subplots.AxesSubplot object at 0x112c066d8>], dtype=object)
Image in a Jupyter notebook

Change to percents for stationarity

df = df.diff() df.plot(subplots=True)
array([<matplotlib.axes._subplots.AxesSubplot object at 0x112cde9b0>, <matplotlib.axes._subplots.AxesSubplot object at 0x112d898d0>], dtype=object)
Image in a Jupyter notebook
df.head()

Null Hypothesis is that the time series in the second column does not granger cause the first column

Do eggs granger-cause chickens?

(Null hypothesis: Eggs do not granger cause chickens)

g_cause = grangercausalitytests(df.dropna(), maxlag=12)
Granger Causality number of lags (no zero) 1 ssr based F test: F=10.3694 , p=0.0023 , df_denom=49, df_num=1 ssr based chi2 test: chi2=11.0043 , p=0.0009 , df=1 likelihood ratio test: chi2=9.9819 , p=0.0016 , df=1 parameter F test: F=10.3694 , p=0.0023 , df_denom=49, df_num=1 Granger Causality number of lags (no zero) 2 ssr based F test: F=3.9196 , p=0.0268 , df_denom=46, df_num=2 ssr based chi2 test: chi2=8.6913 , p=0.0130 , df=2 likelihood ratio test: chi2=8.0254 , p=0.0181 , df=2 parameter F test: F=3.9196 , p=0.0268 , df_denom=46, df_num=2 Granger Causality number of lags (no zero) 3 ssr based F test: F=2.9318 , p=0.0441 , df_denom=43, df_num=3 ssr based chi2 test: chi2=10.2270 , p=0.0167 , df=3 likelihood ratio test: chi2=9.3049 , p=0.0255 , df=3 parameter F test: F=2.9318 , p=0.0441 , df_denom=43, df_num=3 Granger Causality number of lags (no zero) 4 ssr based F test: F=4.1762 , p=0.0064 , df_denom=40, df_num=4 ssr based chi2 test: chi2=20.4635 , p=0.0004 , df=4 likelihood ratio test: chi2=17.1001 , p=0.0018 , df=4 parameter F test: F=4.1762 , p=0.0064 , df_denom=40, df_num=4 Granger Causality number of lags (no zero) 5 ssr based F test: F=3.0577 , p=0.0208 , df_denom=37, df_num=5 ssr based chi2 test: chi2=19.8339 , p=0.0013 , df=5 likelihood ratio test: chi2=16.6014 , p=0.0053 , df=5 parameter F test: F=3.0577 , p=0.0208 , df_denom=37, df_num=5 Granger Causality number of lags (no zero) 6 ssr based F test: F=2.6883 , p=0.0303 , df_denom=34, df_num=6 ssr based chi2 test: chi2=22.2967 , p=0.0011 , df=6 likelihood ratio test: chi2=18.2477 , p=0.0056 , df=6 parameter F test: F=2.6883 , p=0.0303 , df_denom=34, df_num=6 Granger Causality number of lags (no zero) 7 ssr based F test: F=2.0445 , p=0.0807 , df_denom=31, df_num=7 ssr based chi2 test: chi2=21.2368 , p=0.0034 , df=7 likelihood ratio test: chi2=17.4607 , p=0.0147 , df=7 parameter F test: F=2.0445 , p=0.0807 , df_denom=31, df_num=7 Granger Causality number of lags (no zero) 8 ssr based F test: F=2.2817 , p=0.0509 , df_denom=28, df_num=8 ssr based chi2 test: chi2=29.3360 , p=0.0003 , df=8 likelihood ratio test: chi2=22.5870 , p=0.0039 , df=8 parameter F test: F=2.2817 , p=0.0509 , df_denom=28, df_num=8 Granger Causality number of lags (no zero) 9 ssr based F test: F=1.8727 , p=0.1040 , df_denom=25, df_num=9 ssr based chi2 test: chi2=29.6642 , p=0.0005 , df=9 likelihood ratio test: chi2=22.6744 , p=0.0070 , df=9 parameter F test: F=1.8727 , p=0.1040 , df_denom=25, df_num=9 Granger Causality number of lags (no zero) 10 ssr based F test: F=2.2821 , p=0.0513 , df_denom=22, df_num=10 ssr based chi2 test: chi2=44.6039 , p=0.0000 , df=10 likelihood ratio test: chi2=30.5999 , p=0.0007 , df=10 parameter F test: F=2.2821 , p=0.0513 , df_denom=22, df_num=10 Granger Causality number of lags (no zero) 11 ssr based F test: F=1.8222 , p=0.1209 , df_denom=19, df_num=11 ssr based chi2 test: chi2=44.3087 , p=0.0000 , df=11 likelihood ratio test: chi2=30.2510 , p=0.0014 , df=11 parameter F test: F=1.8222 , p=0.1209 , df_denom=19, df_num=11 Granger Causality number of lags (no zero) 12 ssr based F test: F=1.2835 , p=0.3149 , df_denom=16, df_num=12 ssr based chi2 test: chi2=39.4674 , p=0.0001 , df=12 likelihood ratio test: chi2=27.6455 , p=0.0062 , df=12 parameter F test: F=1.2835 , p=0.3149 , df_denom=16, df_num=12

Reverse the Order

Do Chickens Granger cause Eggs?

(Null hypothesis: Chickens do not granger cause eggs)

df_reversed = df[df.columns[::-1]].copy() df_reversed.head()
grangercausalitytests(df_reversed.dropna(), maxlag = 12)
Granger Causality number of lags (no zero) 1 ssr based F test: F=0.5434 , p=0.4646 , df_denom=49, df_num=1 ssr based chi2 test: chi2=0.5766 , p=0.4476 , df=1 likelihood ratio test: chi2=0.5734 , p=0.4489 , df=1 parameter F test: F=0.5434 , p=0.4646 , df_denom=49, df_num=1 Granger Causality number of lags (no zero) 2 ssr based F test: F=0.3865 , p=0.6816 , df_denom=46, df_num=2 ssr based chi2 test: chi2=0.8571 , p=0.6515 , df=2 likelihood ratio test: chi2=0.8500 , p=0.6538 , df=2 parameter F test: F=0.3865 , p=0.6816 , df_denom=46, df_num=2 Granger Causality number of lags (no zero) 3 ssr based F test: F=0.2245 , p=0.8788 , df_denom=43, df_num=3 ssr based chi2 test: chi2=0.7833 , p=0.8535 , df=3 likelihood ratio test: chi2=0.7772 , p=0.8549 , df=3 parameter F test: F=0.2245 , p=0.8788 , df_denom=43, df_num=3 Granger Causality number of lags (no zero) 4 ssr based F test: F=0.2817 , p=0.8881 , df_denom=40, df_num=4 ssr based chi2 test: chi2=1.3801 , p=0.8476 , df=4 likelihood ratio test: chi2=1.3611 , p=0.8509 , df=4 parameter F test: F=0.2817 , p=0.8881 , df_denom=40, df_num=4 Granger Causality number of lags (no zero) 5 ssr based F test: F=0.3181 , p=0.8989 , df_denom=37, df_num=5 ssr based chi2 test: chi2=2.0631 , p=0.8403 , df=5 likelihood ratio test: chi2=2.0200 , p=0.8464 , df=5 parameter F test: F=0.3181 , p=0.8989 , df_denom=37, df_num=5 Granger Causality number of lags (no zero) 6 ssr based F test: F=0.3060 , p=0.9295 , df_denom=34, df_num=6 ssr based chi2 test: chi2=2.5379 , p=0.8642 , df=6 likelihood ratio test: chi2=2.4717 , p=0.8716 , df=6 parameter F test: F=0.3060 , p=0.9295 , df_denom=34, df_num=6 Granger Causality number of lags (no zero) 7 ssr based F test: F=0.4101 , p=0.8887 , df_denom=31, df_num=7 ssr based chi2 test: chi2=4.2598 , p=0.7494 , df=7 likelihood ratio test: chi2=4.0739 , p=0.7712 , df=7 parameter F test: F=0.4101 , p=0.8887 , df_denom=31, df_num=7 Granger Causality number of lags (no zero) 8 ssr based F test: F=0.3128 , p=0.9546 , df_denom=28, df_num=8 ssr based chi2 test: chi2=4.0223 , p=0.8551 , df=8 likelihood ratio test: chi2=3.8525 , p=0.8702 , df=8 parameter F test: F=0.3128 , p=0.9546 , df_denom=28, df_num=8 Granger Causality number of lags (no zero) 9 ssr based F test: F=0.3113 , p=0.9638 , df_denom=25, df_num=9 ssr based chi2 test: chi2=4.9306 , p=0.8403 , df=9 likelihood ratio test: chi2=4.6734 , p=0.8618 , df=9 parameter F test: F=0.3113 , p=0.9638 , df_denom=25, df_num=9 Granger Causality number of lags (no zero) 10 ssr based F test: F=0.8446 , p=0.5935 , df_denom=22, df_num=10 ssr based chi2 test: chi2=16.5086 , p=0.0860 , df=10 likelihood ratio test: chi2=13.9716 , p=0.1743 , df=10 parameter F test: F=0.8446 , p=0.5935 , df_denom=22, df_num=10 Granger Causality number of lags (no zero) 11 ssr based F test: F=1.0149 , p=0.4700 , df_denom=19, df_num=11 ssr based chi2 test: chi2=24.6780 , p=0.0102 , df=11 likelihood ratio test: chi2=19.4126 , p=0.0541 , df=11 parameter F test: F=1.0149 , p=0.4700 , df_denom=19, df_num=11 Granger Causality number of lags (no zero) 12 ssr based F test: F=0.7956 , p=0.6507 , df_denom=16, df_num=12 ssr based chi2 test: chi2=24.4643 , p=0.0176 , df=12 likelihood ratio test: chi2=19.1852 , p=0.0842 , df=12 parameter F test: F=0.7956 , p=0.6507 , df_denom=16, df_num=12
{1: ({'lrtest': (0.5734490153902243, 0.44889161538627487, 1), 'params_ftest': (0.5433559398878083, 0.46456032713251894, 49.0, 1), 'ssr_chi2test': (0.5766226300849848, 0.44763919540156927, 1), 'ssr_ftest': (0.5433559398877741, 0.4645603271325349, 49.0, 1)}, [<statsmodels.regression.linear_model.RegressionResultsWrapper at 0x10af73e80>, <statsmodels.regression.linear_model.RegressionResultsWrapper at 0x112e50da0>, array([[0., 1., 0.]])]), 2: ({'lrtest': (0.8499712220999527, 0.6537791922582916, 2), 'params_ftest': (0.3865324025020185, 0.6815945120531242, 46.0, 2), 'ssr_chi2test': (0.8570935881565733, 0.6514551055997179, 2), 'ssr_ftest': (0.386532402501984, 0.6815945120531471, 46.0, 2)}, [<statsmodels.regression.linear_model.RegressionResultsWrapper at 0x112e600f0>, <statsmodels.regression.linear_model.RegressionResultsWrapper at 0x112e601d0>, array([[0., 0., 1., 0., 0.], [0., 0., 0., 1., 0.]])]), 3: ({'lrtest': (0.7772370747510422, 0.8549035149494942, 3), 'params_ftest': (0.22454871567246923, 0.8788077992758596, 43.0, 3), 'ssr_chi2test': (0.7833094732752076, 0.8534548799479462, 3), 'ssr_ftest': (0.2245487156722262, 0.8788077992760295, 43.0, 3)}, [<statsmodels.regression.linear_model.RegressionResultsWrapper at 0x112e604a8>, <statsmodels.regression.linear_model.RegressionResultsWrapper at 0x112e60588>, array([[0., 0., 0., 1., 0., 0., 0.], [0., 0., 0., 0., 1., 0., 0.], [0., 0., 0., 0., 0., 1., 0.]])]), 4: ({'lrtest': (1.3610627584390613, 0.8509334643982929, 4), 'params_ftest': (0.28166162853933724, 0.8881254344974849, 40.0, 4), 'ssr_chi2test': (1.3801419798422023, 0.8476389876064325, 4), 'ssr_ftest': (0.28166162853922494, 0.8881254344975573, 40.0, 4)}, [<statsmodels.regression.linear_model.RegressionResultsWrapper at 0x112e608d0>, <statsmodels.regression.linear_model.RegressionResultsWrapper at 0x112e609b0>, array([[0., 0., 0., 0., 1., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 1., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 1., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 1., 0.]])]), 5: ({'lrtest': (2.0200125317383026, 0.8463690492920168, 5), 'params_ftest': (0.3180643028304015, 0.898937290819509, 37.0, 5), 'ssr_chi2test': (2.0631198021437793, 0.8403440941804419, 5), 'ssr_ftest': (0.3180643028304993, 0.8989372908194493, 37.0, 5)}, [<statsmodels.regression.linear_model.RegressionResultsWrapper at 0x112e60d68>, <statsmodels.regression.linear_model.RegressionResultsWrapper at 0x112e60e48>, array([[0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0.]])]), 6: ({'lrtest': (2.4717395459329055, 0.8716169565428891, 6), 'params_ftest': (0.305986579348154, 0.9294594355871434, 34.0, 6), 'ssr_chi2test': (2.5378886875348328, 0.864203451742156, 6), 'ssr_ftest': (0.3059865793481714, 0.9294594355871338, 34.0, 6)}, [<statsmodels.regression.linear_model.RegressionResultsWrapper at 0x1135b22b0>, <statsmodels.regression.linear_model.RegressionResultsWrapper at 0x1135b2390>, array([[0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0.]])]), 7: ({'lrtest': (4.073926511361265, 0.7712242441944848, 7), 'params_ftest': (0.41010237300151875, 0.8886520269642009, 31.0, 7), 'ssr_chi2test': (4.259773035693334, 0.7494175827469708, 7), 'ssr_ftest': (0.41010237300153213, 0.888652026964192, 31.0, 7)}, [<statsmodels.regression.linear_model.RegressionResultsWrapper at 0x1135b2828>, <statsmodels.regression.linear_model.RegressionResultsWrapper at 0x1135b2908>, array([[0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0.]])]), 8: ({'lrtest': (3.852544899883128, 0.8701761951171116, 8), 'params_ftest': (0.31284289431492973, 0.9546149969647985, 28.0, 8), 'ssr_chi2test': (4.02226578404924, 0.8551089926057871, 8), 'ssr_ftest': (0.3128428943149409, 0.9546149969647937, 28.0, 8)}, [<statsmodels.regression.linear_model.RegressionResultsWrapper at 0x1135b2e10>, <statsmodels.regression.linear_model.RegressionResultsWrapper at 0x1135b2ef0>, array([[0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0.]])]), 9: ({'lrtest': (4.673418156503203, 0.861797801102004, 9), 'params_ftest': (0.3112774620891905, 0.9638254371190023, 25.0, 9), 'ssr_chi2test': (4.930634999491071, 0.8403125555028762, 9), 'ssr_ftest': (0.31127746208908275, 0.9638254371190418, 25.0, 9)}, [<statsmodels.regression.linear_model.RegressionResultsWrapper at 0x1135b84a8>, <statsmodels.regression.linear_model.RegressionResultsWrapper at 0x1135b8588>, array([[0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0.]])]), 10: ({'lrtest': (13.971594178371333, 0.1742912331527489, 10), 'params_ftest': (0.8446262615147703, 0.5934789392380712, 22.0, 10), 'ssr_chi2test': (16.508604202335512, 0.08596940315964598, 10), 'ssr_ftest': (0.8446262615148401, 0.5934789392380146, 22.0, 10)}, [<statsmodels.regression.linear_model.RegressionResultsWrapper at 0x1135b8b70>, <statsmodels.regression.linear_model.RegressionResultsWrapper at 0x1135b8c50>, array([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0.]])]), 11: ({'lrtest': (19.412636371349322, 0.0540769341111939, 11), 'params_ftest': (1.01489660500302, 0.47001825440390665, 19.0, 11), 'ssr_chi2test': (24.678012184810513, 0.01015870344734306, 11), 'ssr_ftest': (1.0148966050030297, 0.4700182544039003, 19.0, 11)}, [<statsmodels.regression.linear_model.RegressionResultsWrapper at 0x1135bf2e8>, <statsmodels.regression.linear_model.RegressionResultsWrapper at 0x1135bf3c8>, array([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0.]])]), 12: ({'lrtest': (19.185239129926913, 0.08415507913451764, 12), 'params_ftest': (0.7955865075914265, 0.6507118692536911, 16.0, 12), 'ssr_chi2test': (24.46428510843607, 0.017575725914136493, 12), 'ssr_ftest': (0.7955865075914169, 0.6507118692536988, 16.0, 12)}, [<statsmodels.regression.linear_model.RegressionResultsWrapper at 0x1135bfa90>, <statsmodels.regression.linear_model.RegressionResultsWrapper at 0x1135bfb70>, array([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0.]])])}

Conclusion:

Eggs granger cause chickens but chickens do not granger cause eggs!