I am using the
tsa.vector_ar in Python, StatsModel Package and when I do a Forecast Error Variance Decomposition using the command
FEDV I want to provide my own sigma matrix (covariance matrix of my residuals). In other words, I want to compute a generalized impulse responses. Unlike the traditional impulse response analysis, this approach does not require orthogonalization of shocks and is invariant to the ordering of the variables in the VAR. Below is the typical example of running a VAR in Python
# some example data >>> import pandas >>> mdata = sm.datasets.macrodata.load_pandas().data # prepare the dates index >>> dates = mdata[['year', 'quarter']].astype(int).astype(str) >>> quarterly = dates["year"] + "Q" + dates["quarter"] >>> from statsmodels.tsa.base.datetools import dates_from_str >>> quarterly = dates_from_str(quarterly) >>> mdata = mdata[['realgdp','realcons','realinv']] >>> mdata.index = pandas.DatetimeIndex(quarterly) >>> data = np.log(mdata).diff().dropna() # make a VAR model >>> model = VAR(data) >>> fevd = results.fevd(5) >>> fevd.summary() FEVD for realgdp realgdp realcons realinv 0 1.000000 0.000000 0.000000 1 0.864889 0.129253 0.005858 2 0.816725 0.177898 0.005378 3 0.793647 0.197590 0.008763 4 0.777279 0.208127 0.014594
How can I do the above
results.fevd(nsteps) command but by providing my own factor matrix to be decomposed? I know how to compute the factor matrix but I don't know how to implement the generalized impulse response with the above commands.