# Python: Compute the Generalized Impulse Responses

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

# 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.

• Im having the same problem now. Did you solve this issue? Sep 3, 2015 at 12:59
• This wasn't supported at the time but is now. See the mailing list thread started by Charles groups.google.com/d/msg/pystatsmodels/BqMqOIghN78/A3CpDH6_h5AJ that lead to the fix and for an example. Sep 3, 2015 at 13:43