Pythonで多次元グレンジャー因果関係を実装しようとしています。さらに言えば、Statsmodels の Vector Autoregression を使用していますが、そこから係数を取得しようとすると、空の行列が返されます。誰かが正確に何が間違っているのか教えてもらえますか?
import numpy as np
from statsmodels.tsa.vector_ar import var_model
def multi_dim_granger(X_ts,Y_ts,order=5,test='F-test'):
"""Multivariate Granger cusality.
input:
X_ts: the first vector time series.
TxK matrix with T being the time instance and K is the dimension
Y_ts: the second vector time series.
TxK matrix with T being the time instance and K is the dimension
order: the maximum number of lags for fitting a VAR process
test: the statistical test to check for the residual covariance matrix
"""
ts=np.hstack((X,Y))
print ts.shape
VAR_model=var_model.VAR(ts)
ts=VAR_model.fit(ic='aic',maxlags=order)
return ts.coefs
X=np.random.randn(1000,2)
Y=(np.arange(4000)*np.random.randn(4000)).reshape((1000,4))
multi_dim_granger(X,Y)