Limiting the vertical scale of irfs from SVAR

Questions and discussions on Vector Autoregressions
res84529
Posts: 13
Joined: Sat Aug 27, 2011 1:56 am

Limiting the vertical scale of irfs from SVAR

Unread post by res84529 »

Hi there!

I have two questions with regard to the plotting of impulse response functions. The first question is how to limit the range of vertical scales in all the graph for computed impulse response functions. For the horizontal scale, I could reduce the # of steps shown for the impulse responses to shrink the graph horizontally. But for the vertical scale, it's more difficult b/c for each graph (I use noncommon scale), the maximum and minimum values in the vertical scale are different, which makes it difficult to revise the code in mcgraphirf.src file. So could you please tell me how to limit the range of vertical scales in this case?

The second question is about the size of the unit shock. I use rescaled one unit shock to each variable. But I found the starting value for the impulse response of some variables to their own shock are not 1, although they're close to 1. For example, the initial response of M1 to ms shock is 0.75 while the initial response of i/r to md shock is 0.7. I read some discussion on the topic of "How one SD shock can be converted into percentage shock" below. It seems that I cannot use either option b/c I need to generate unit shocks to all variables and the importance sampling already make the code "factor=swish". Could you please tell me what the cause of this "initial value problem" and how to solve it?

code, dataset are attached

Best Regards
Attachments
limiting vertical scale_code.txt
(9.42 KiB) Downloaded 852 times
mcgraphirf_b.txt
(12.34 KiB) Downloaded 864 times
Last edited by res84529 on Thu Feb 09, 2012 6:05 pm, edited 1 time in total.
TomDoan
Posts: 7814
Joined: Wed Nov 01, 2006 4:36 pm

Re: Limiting the vertical scale of irfs from SVAR

Unread post by TomDoan »

Before you start worrying about the appearance of the graphs, you probably want to get your estimation code fixed. First, six lags and seven variables is too much for 10 years of monthly data. If you don't want to use IC's to pick the lag length (I'd guess that BIC or HQ will choose lags=1), I wouldn't go more than three or four with that much data. More important,

Code: Select all

nonlin(parmset=kimroubi) a12 a21 a24 a25 a36 a43 a46 $
a56 a71 a72 a73 a74 a75 a76 $
a12=-0.08615903 a21=22.71916072 a24=-0.93482506 a25=-2.67652275 a36=-0.03468131 $
a43=-0.20383820 a46=-0.00301133 a56=-0.10467822 a71=0.11729646 a72=-0.00857466 $
a73=0.80264590 a74=-0.25546364 a75=0.03659850 a76=0.03522544
is pegging every single parameter. You're not estimating anything so the MC integration isn't doing anything useful either. Correct that (convert the last three lines into a COMPUTE instruction to initialize rather than peg the parameters) and your other problems might disappear.
res84529
Posts: 13
Joined: Sat Aug 27, 2011 1:56 am

Re: Limiting the vertical scale of irfs from SVAR

Unread post by res84529 »

Hi Tom!

Thank you very much for your suggestions!

I know the degrees of freedom would be a concern if I use 6 lags, but my supervisor prefer using more lags so that there are more dynamics in the irfs shown. So I have no choice on this issue. Regarding pegging every single parameter, you might remember that one year ago I had similar problem. I found letting the estimation done in the importance sampling process would get different estimates from those estimated with a single CVMODEL instruction. The reason, as you pointed out, is that when using importance sampling setup to estimate this non-recursive SVAR, the estimates are flying on the sky. I tried again this time, but the same problem reoccured. I have to peg every single parameter so that I can control the shape of the irf at least.

Now could you please give me some suggestions for the two questions posted in Dec. 19?

Wish you a very happy new year!
TomDoan
Posts: 7814
Joined: Wed Nov 01, 2006 4:36 pm

Re: Limiting the vertical scale of irfs from SVAR

Unread post by TomDoan »

res84529 wrote:Hi there!

I have two questions with regard to the plotting of impulse response functions. The first question is how to limit the range of vertical scales in all the graph for computed impulse response functions. For the horizontal scale, I could reduce the # of steps shown for the impulse responses to shrink the graph horizontally. But for the vertical scale, it's more difficult b/c for each graph (I use noncommon scale), the maximum and minimum values in the vertical scale are different, which makes it difficult to revise the code in mcgraphirf.src file. So could you please tell me how to limit the range of vertical scales in this case?
How do you define "too big" when the values will change from one set of draws to the next? And if something is "too big", what do you plan to do with it (and why?) If responses are explosive, the best thing to do is to do fewer steps uniformly across series but to run them out to the point at which it's clear that the dominant root is taking over. That way, anyone looking at the graphs can understand that it was pointless to show more.
res84529 wrote: The second question is about the size of the unit shock. I use rescaled one unit shock to each variable. But I found the starting value for the impulse response of some variables to their own shock are not 1, although they're close to 1. For example, the initial response of M1 to ms shock is 0.75 while the initial response of i/r to md shock is 0.7. I read some discussion on the topic of "How one SD shock can be converted into percentage shock" below. It seems that I cannot use either option b/c I need to generate unit shocks to all variables and the importance sampling already make the code "factor=swish". Could you please tell me what the cause of this "initial value problem" and how to solve it?
You are rescaling each variable by the standard deviation of its OLS VAR residuals. That won't produce a 1.0 value except for the own response to the first variable in a Cholesky factor; in an overidentified SVAR, there is no reason to expect any of them to match with the standard deviation of their shock.
TomDoan
Posts: 7814
Joined: Wed Nov 01, 2006 4:36 pm

Re: Limiting the vertical scale of irfs from SVAR

Unread post by TomDoan »

res84529 wrote:Hi Tom!

Thank you very much for your suggestions!

I know the degrees of freedom would be a concern if I use 6 lags, but my supervisor prefer using more lags so that there are more dynamics in the irfs shown. So I have no choice on this issue. Regarding pegging every single parameter, you might remember that one year ago I had similar problem. I found letting the estimation done in the importance sampling process would get different estimates from those estimated with a single CVMODEL instruction. The reason, as you pointed out, is that when using importance sampling setup to estimate this non-recursive SVAR, the estimates are flying on the sky. I tried again this time, but the same problem reoccured. I have to peg every single parameter so that I can control the shape of the irf at least.

Now could you please give me some suggestions for the two questions posted in Dec. 19?

Wish you a very happy new year!
The IRF's in a 7 variable, 4 lag model have 28 roots. They aren't going to be lacking for dynamics. The overfit 6 lag model has three roots bigger than 1, including one that's 1.06 in absolute value. Powers of that get to be very big, very fast.

From what I can see, there's nothing wrong with your model if it's done properly, that is, if you estimate the SVAR and don't obscure the results with rescaling. If you really insist upon proceeding with the pegged parameters, you need to replace:

compute au =%rant(nu)

with

compute au=%const(0.0)

which doesn't try to sample the SVAR parameters, sampling only the diagonal variances and the lag coefficients.
res84529
Posts: 13
Joined: Sat Aug 27, 2011 1:56 am

Re: Limiting the vertical scale of irfs from SVAR

Unread post by res84529 »

Hi Tom,

Thank you very much for your suggestion! I really appreciate that!

I have two further questions.

First, in your comment, it seems hopeless to produce the responses to unit shocks for the overidentified SVAR model. Is there any other way to do this in Rats?

Second, I don't know whether the roots in your comment means characteristic roots. In the results for characteristic roots for the model in a 7 variable, 6 lag produced by the Eviews, no roots lies outside the unit circle. I don't know why you got different results.

Best Regards
TomDoan
Posts: 7814
Joined: Wed Nov 01, 2006 4:36 pm

Re: Limiting the vertical scale of irfs from SVAR

Unread post by TomDoan »

res84529 wrote:Hi Tom,

Thank you very much for your suggestion! I really appreciate that!

I have two further questions.

First, in your comment, it seems hopeless to produce the responses to unit shocks for the overidentified SVAR model. Is there any other way to do this in Rats?
That's exactly the opposite of what I'm trying to say. Your model works fine when done using standard practice. It is your desire to rescale everything that is non-standard. NOCOMMONSCALE makes trivial responses seem large.
res84529 wrote: Second, I don't know whether the roots in your comment means characteristic roots. In the results for characteristic roots for the model in a 7 variable, 6 lag produced by the Eviews, no roots lies outside the unit circle. I don't know why you got different results.
You're right. In playing around with re-estimation, I probably got stuck in the wrong estimation range. However, six lags is still too many for that number of data points.
Post Reply