RATS 11
RATS 11

Procedures /

MCFEVDTABLE Procedure

Home Page

← Previous Next →

@MCFEVDTABLE generates error bands for the FEVD (forecast error variance decomposition) in a VAR using the output from a Monte Carlo (MC) or bootstrapping procedure such as @MCVARDODRAWS. (It uses the %%RESPONSES information). For each draw, it computes a separate FEVD and computes statistics on those across draws. Note: this assumes that the shocks used in generating the IRF's are orthogonal and produce a complete factorization of the covariance matrix. It cannot be used with isolated shocks (from, for instance, sign restrictions).

 

FEVD's have highly asymmetrical distributions which are pinned between 0 and 1 by construction. As a result, moment-based statistics such as means and standard errors provide poor measures of the center and spread of the distribution. Percentiles (such as a 16%-84% range) are much better. However, the point estimate (the FEVD at the least squares estimates) could easily fall outside even those. That's the nature of the FEVD calculation—since both positive and negative responses get squared, and are thus indistinguishable, an IRF which is close to zero in the point estimate, and statistically insignificant, will likely lie outside its FEVD bounds since the randomness of the Monte Carlo integration process will generally give a combination of larger positive and negative responses.

 

The "center" estimates are medians, not means. However, with more than two variables, they can add to a number well below 100%. (With two variables, if 50% of the draws have an FEVD below \(\alpha\), 50% of the draws for the other variable have to be above \(1-\alpha\) so by construction, their medians will have to sum to 1). While we provide this procedure, you will likely find that point estimates of the FEVD combined with error bands on the IRF's themselves provide better information.

@MCFEVDTABLE(MODEL=model used in generating responses,other options)

Options

SHOCKLABELS=VECT[STRINGS] of labels for the shocks [dependent variables of model]

VARLABELS=VECT[STRING] of labels for the variables [dependent variables of model]

 

INCLUDE=||list of dependent variables to show (in order, by position in model)|| [all]

INCLUDE can be used to eliminate some variables which aren't of special interest or to rearrange the panes on a graph. For instance, in a 6 variable VAR, INCLUDE=||6,1,3,4|| will show only the responses of those four variables (based upon their positions in the model) and will put the 6th variable in the top left.

 

HORIZONS=VECT[INT] of forecast horizons to include [||1,2,3,4,8,12,40||]

 

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 mean response. PERCENTILES is the default. Because the FEVD's are very asymmetrical, the use of the symmetric bands with STDDEV isn't recommended.

 

TABLE=[BYVARIABLE]/BYSHOCK

Organization for the table

 

PICTURE=picture code for displaying percentages ["##.#"]

Example
 

*

* Replication for Blanchard and Quah(1989), "The Dynamic Effects of

* Aggregate Demand and Supply Disturbances", AER, vol 79, no. 4, pp

* 655-673.

*

* This includes the figures and tables that require simulations. Note

* that BQ used bootstrapping, which did not work well in this case. This

* is a point made in Sims and Zha(1999), "Error Bands for Impulse

* Responses", Econometrica, vol 67, no. 5, pp 1113-1156. These are done

* by Monte Carlo integration with the standard "Jeffrey's" prior.

*

cal(q) 1948

open data bqdata.xls

data(format=xls,org=cols) 1948:1 1987:4 gnp gd87 lhmur

*

* Generate log real GNP from the gnp and the price deflator

*

set loggnp   = log(gnp)

set loggd    = log(gd87)

set logrgnp  = loggnp-loggd+log(100)

set dlogrgnp = 100.0*(logrgnp-logrgnp{1})

*

* BQ de-mean the GNP growth data with separate values for two subsamples.

*

set dummy1 = t<=1973:4

set dummy2 = t>1973:4

*

linreg dlogrgnp

# dummy1 dummy2

set gnpadjust = %resids

prj removed

*

* The unemployment rate is detrended

*

filter(remove=trend) lhmur / uradjust

*

*****************************************

compute [vect[strings]] shocklabels=||"Supply","Demand"||

compute [vect[strings]] varlabels=||"Output","Unemployment"||

*

system(model=varmodel)

var gnpadjust uradjust

lags 1 to 8

det constant

end(system)

*

estimate(noprint)

@BQDoDraws(model=varmodel)

@MCGraphIRF(model=varmodel,shocklabels=shocklabels,varlabels=varlabels)

*

disp "Table 2-Variance Decomposition. Output growth break; Unemployment Detrended"
 

@MCFEVDTable(model=varmodel,horizons=||1,2,3,4,8,12,40||,$

   varlabels=varlabels,shocklabels=shocklabels,table=byshocks)

 

Sample Output

This is the output from the example above. This includes only certain horizons since the FEVD's change very slowly after the first ten of so steps. Note how asymmetrical the distributions are, particularly at the short horizons. For instance, the first table has the one step response of Output to Supply as a median of 9.0% with a 16-84% range of (0.9%,36.8%).

 

Percentage of Variance due to Supply

Horizon Output    Unemployment

      1    9.0        39.1

        0.9,36.8    8.3,77.2

      2    8.3        29.1

        1.4,33.3    5.1,67.4

      3    9.1        22.6

        1.5,35.4    4.0,59.4

      4   10.3        18.6

        1.9,38.0    4.1,53.1

      8   25.3        18.4

        9.9,56.7    8.3,42.5

     12   38.3        21.9

        17.2,67.2  11.0,42.4

     40   65.3        23.0

        45.8,83.7  11.5,43.3

 

Percentage of Variance due to Demand

Horizon Output    Unemployment

      1   91.0        60.9

        63.2,99.1  22.8,91.7

      2   91.7        70.9

        66.7,98.6  32.6,94.9

      3   90.9        77.4

        64.6,98.5  40.6,96.0

      4   89.7        81.4

        62.0,98.1  46.9,95.9

      8   74.7        81.6

        43.3,90.1  57.5,91.7

     12   61.7        78.1

        32.8,82.8  57.6,89.0

     40   34.7        77.0

        16.3,54.2  56.7,88.5


 


Copyright © 2025 Thomas A. Doan