Specific shock: Impulse Response Functions

Questions and discussions on Vector Autoregressions
mj_sydney
Posts: 2
Joined: Tue Dec 14, 2010 6:15 pm

Specific shock: Impulse Response Functions

Unread post by mj_sydney »

Hi,
Say for instance I have a near-VAR estimated using Seemingly Unrelated Regressions, I group the 11 equations into a system called VAR11 and then I use a non-recursive factorisation of the covariance matrix.

The problem I have is that I want to get a specific shock of 0.25 to the interest rate variable. I am aware that I can simply take ALL the system variable responses and rescale them to make the first period std deviation shock of the interest rate into the size that i want it. for instance if i get a 0.50 interest rate standard deviation shock. dividing ALL system variable responses by 2 will rescale the shock and the system variable impulse responses. This is possible since it's a liner combination.

However, I want to be able to do this in RATS. So I tried changing the shock vector using the "impulse" instruction. but the output i get shows that ALL the first period responses change. Am I using it correctly? My understanding from the manual was that changing the shock vector would result in a specific shock to ONE variable?


impulse(model=var11,shock=||0, 0, 0, 0, 0, 0, 0, 0, 0, 0.25, 0||,results=responses,factor=fsvar,steps=20,windom="IRFs")

I get the following:

Entry LUSGDP LCOMP LC LINVST LG LEX LIM INFLYTM LM1 INT LRTWI
1 0 0 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.2500000 0.0000000
2 0 0 -0.0009482 0.0006517 -0.0004229 -0.0003984 0.0037476 0.0141736 -0.0002462 0.1751326 0.0062548

as you can see all the first period responses have changed! I want ONLY the INT (cashrate) shock to be 0.25 and others to react the usual way it would for a standard deviation shock of INT (0.287) which is:

Responses to Shock in INT
Entry LUSGDP LCOMP LC LINVST LG LEX LIM INFLYTM LM1 INT LRTWI
1 0.0000000 0.00000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 -0.0025720 0.2871684 0.0189749
2 0.0000000 0.00000000 -0.0004174 0.0006019 -0.0001925 0.0017265 0.0092522 -0.0166038 -0.0012682 0.2658186 0.0220225


Also, i tried to specify the coloumn which is shocked and that command does not seem to work. I get ALL shocks and ALL responses, where as I ONLY want the output to give me the INT Shock's impulse response. So I tried "column=10" and it still gives me ALL the output.

Any help would be most appreciated.

cheers

Mj
moderator
Site Admin
Posts: 269
Joined: Thu Oct 19, 2006 4:33 pm

Re: Specific shock: Impulse Response Functions

Unread post by moderator »

The SHOCK option specifies the actual shock to each equation, so it is behaving exactly as expected.

If you instead want shocks to an orthogonalized innovation, but want to change the scales of one or more shocks, you would do that by modifying the factor matrix. For example, if you want to use a Cholesky factorization (the default behavior), you would need to use the %DECOMP() function to compute the Cholesky factorization, then modify it as desired (usually by scaling an entire column), and then use the FACTOR option on IMPULSE to use your modified Cholesky decomposition as the FACTOR matrix.

As for the output, IMPULSE is always going to give you the responses of all equations in the model. If you don't care about some of the responses, just ignore them--that is, only print out, graph, or do computations with the particular response(s) of interest.

Again, the default behavior when using the MODEL option is to use a Cholesky factorization, and compute all responses for shocks to each of the equations. The RESULTS option will give you a RECTANGULAR array of SERIES containing all the shock/response combinations.


If you use INPUT, SHOCKS, PATHS, or MATRIX to supply your own shocks, you will only get one set of responses, since you are only providing one set of shocks.

Regards,
Tom Maycock
emdlf
Posts: 2
Joined: Wed Nov 16, 2011 10:59 am

Re: Specific shock: Impulse Response Functions

Unread post by emdlf »

Hi Tom,
I need a feedback on this topic. I need to get a specific shock of 0.25 to the interest rate variable, but the "shock" option of the IMPULSE function doesn't work for me because it gives simultaneous shocks to each variable. I need to get the specific shock and left free the others.
I'm using these options:
impulse(noprint,model=varmodel,decomp=AAsims,results=impulses) nvar nstep
How can I get it?

Thanks in advance.
TomDoan
Posts: 7814
Joined: Wed Nov 01, 2006 4:36 pm

Re: Specific shock: Impulse Response Functions

Unread post by TomDoan »

emdlf wrote:Hi Tom,
I need a feedback on this topic. I need to get a specific shock of 0.25 to the interest rate variable, but the "shock" option of the IMPULSE function doesn't work for me because it gives simultaneous shocks to each variable. I need to get the specific shock and left free the others.
I'm using these options:
impulse(noprint,model=varmodel,decomp=AAsims,results=impulses) nvar nstep
How can I get it?

Thanks in advance.
I'm not sure what you mean by "left free the others". IMPULSE with the SHOCKS option is doing one set of responses to one specific set of shocks. Do you want a standard Cholesky factor shock, but scaled to make the own response of interest rates equal to .25? You would do that with

compute myshock=.25*%xcol(aasims,position of r in the VAR)/aasims(position of r in the VAR,position of r in the VAR)

then

impulse(noprint,model=varmodel,shock=myshock,...)
emdlf
Posts: 2
Joined: Wed Nov 16, 2011 10:59 am

Re: Specific shock: Impulse Response Functions

Unread post by emdlf »

Thanks for your answer.
I´m not using Cholesky decomposition but Sims'. Does it work the same or should I specify again "decomp=AAsims" option?
TomDoan
Posts: 7814
Joined: Wed Nov 01, 2006 4:36 pm

Re: Specific shock: Impulse Response Functions

Unread post by TomDoan »

It would be the same. You take the factor and rescale the shock of interest to have the impact that you want.
Post Reply