MCPROCESSIRF Procedure |
@MCPROCESSIRF takes a set of simulated impulse response functions (done with, for instance, @MCVARDODRAWS) and generates upper, lower and center series as they are for @MCGRAPHIRF) without doing the graphs. That way you can report the information as you wish. The input simulated responses have to be in the %%RESPONSES array as described in the comments to the procedure.
@MCPROCESSIRF( options )
Options
MODEL=model used in generating responses
NVAR=number of variables for which responses are included
CENTER=[MEAN]/MEDIAN/INPUT
IMPULSES=RECT[SERIES] with input "center" for IRF's
These determine what is to be used as the point estimate of the IRF. The default is CENTER=MEAN, which will be the mean across simulations. CENTER=MEDIAN requests the median. If CENTER=INPUT, you must input the desired point estimates using the IMPULSES option—typically those would be the impulse responses at the original estimates for the VAR.
PERCENTILES=||percentiles for lower and upper bounds|| [||.16,.84||]
STDDEV=# of standard deviations from mean for lower and upper bounds [not used]
STDDEV is used for doing error bands based upon multiples of the sample standard deviations. For instance, STDDEV=1.0 will give upper and lower bounds that are one standard deviation above and below the central response. PERCENTILES is the default.
WEIGHTS=series of (relative) weights on the draws (from importance sampling) [equal weights]
Note that this can dramatically slow down the calculation if you ask for percentiles and have many (5000+) draws.
ACCUMULATE=||list of variables (by original position) to accumulate|| [none]
If you already did accumulation when you generated the impulse responses, don't repeat it here.
These are the outputs. IRF is required, the other three are options. Each generates a RECT[SERIES], where x(i,j) is the series of responses of variable i to shock j.
IRF=RECT[SERIES] with the central measure of the impulse responses
VAR=RECT[SERIES] with the variances of the IRF's
LOWER=RECT[SERIES] with the lower bounds
UPPER=RECT[SERIES] with the upper bounds
Examples
@MCProcessIRF(MODEL=varmodel,IRF=irf,UPPER=upper,$
LOWER=lower,PERCENTILES=||.16,.84||)
Again, note that you will already have had to generate the draws into the %%RESPONSES array. This generates the median responses in the RECT[SERIES] IRF, the lower bounds and upper bounds into the RECT[SERIES] LOWER and UPPER. Those are the 16% and 84%-iles of the responses. After the @MCPROCESSIRF, you would use IRF(I,J), UPPER(I,J) and LOWER(I,J) to reference the components, where the row ("I") in each is the target variable and the column ("J") is the shock.
For full examples (including generation of %%RESPONSES and use of the output) see
Bjornland Leitemo JME 2009
Copyright © 2025 Thomas A. Doan