Page 1 of 1

Impulse response in multi-equation model

Posted: Wed Mar 25, 2015 3:22 am
by nizinamazowiecka
Hi Everyone,

I have a large multi-equation model. Not VAR, just OLS regression equations and identities put together as model. I would like to plot sth similar to an impulse reaction function in VAR. On X-axis I would have time, and on Y-axis a change of particular variable in response to a shock of an exegenous variable.

I do not want to compare alternative scenarios (in the forecast sample) but see the IRF. But I cannot seem to find such an option. How to do it?

I know that it can be done. Many central banks do it, while presenting their projections.

I'm using Eviews 8.

Re: Impulse response in multi-equation model

Posted: Thu Mar 26, 2015 5:08 am
by trubador
I cannot see the use of impulse response analysis (IRA) unless there is a dynamic model which would help shocks propagate throughout the system. I am fairly sure that every central bank relies on some sort of a (S)VAR or a DSGE model for producing the forecasts.

If you have dynamic regression models instead, then the "Model" object in EViews may still come handy as you can use scenarios to serve the purpose. The example below compares the results of two IRAs from an AR(1) model and its dynamic regression counterpart for the univariate case:

Code: Select all

'Generate data wfcreate u 275 smpl @first @first series y = nrnd smpl @first+1 250 series y = 0.8*y(-1) + nrnd smpl @all 'Estimate an AR(1) model and carry out Impulse Response Analysis (IRA) equation eqar.ls y c ar(1) freeze(mode=overwrite,restab) eqar.arma(type=imp, imp=1,hrz=25,t,save=resmat) 'Estimate the model as a dynamic regression equation eqls.ls y c y(-1) 'Make model from the OLS equation eqls.makemodel(mymod) 'Assign an equation add-factor and initialize to zero mymod.addassign(v, c) @stochastic series y_a = 0 'Create unit shock smpl 250 250 series y_a_1 = 1 smpl 251 @last y_a_1 = 0 'Dynamically solve the model for the same horizon as IRA smpl 250 275 mymod.scenario "scenario 1" mymod.override y_a mymod.solveopt(a=t) mymod.solve 'Compute the difference between actual and baseline scenarios series modshock = y_1 - y_0 'Extract the response values from the matrix saved in AR(1) model vector vtemp = @columnextract(resmat,1) mtos(vtemp,arresponse) 'Compare the results line modshock arresponse smpl @all
Other than that, I cannot think of anything specific about what you are asking. It seems you already know how to create an alternative scenario and compare the results of two forecasts in the case of a shock to an exogenous variable. And to me, this is exactly what you should do, if you just want to see the impact of various types of changes in an exogenous variable.