Skip to content

Heteroschedastic filter and smoother

Marco Ratto requested to merge rattoma/dynare:heteroschedastic_filters into master

Implements heteroschedastic filters, where shocks standard error may unexpectedly change in every period. shocks standard deviation may be set/modified in each observed period by

  • a scale factor, i.e. if std0 is the usual standard error for shock1, std(shock1|t)=std0(shock1)*scale(t)
  • an imputed value: std(shock1|t)=value(t)

Preprocessor requirements:

  1. new option heteroschedastic_filter for estimation and evaluate_smoother: triggers the field options_.heteroschedastic_filter.
  2. new block heteroschedastic_shocks:
heteroschedastic_shocks;

var e1;
periods 86:97;
scale 0.5 0.5 (zeros(1,10));

var e2;
periods 86:97;
value 0.04 0.04 (repmat(0.01,[1 10]));
end;

var e3;
periods 86:87;
value 0.04 0.04 ;
end;

var e3;
periods 88:97;
scale 0;
end;

that triggers the following fields in M_:

M_.heteroschedastic_shocks.Qhet.e1.time_scale=86:97;
M_.heteroschedastic_shocks.Qhet.e1.scale=[0.5 0.5 zeros(1,10)];

M_.heteroschedastic_shocks.Qhet.e2.time_value=86:97;
M_.heteroschedastic_shocks.Qhet.e2.value=[0.04 0.04 repmat(0.01,[1 10])];

M_.heteroschedastic_shocks.Qhet.e3.time_value=86:87;
M_.heteroschedastic_shocks.Qhet.e3.value=[0.04 0.04];

M_.heteroschedastic_shocks.Qhet.e3.time_scale=88:97;
M_.heteroschedastic_shocks.Qhet.e3.scale=0;

this input info is the handled in dynare_estimation_init, by filling in arrays of size [M_.exo_nbr x options_.nobs]

M_.heteroschedastic_shocks.Qscale 
M_.heteroschedastic_shocks.Qvalue

Users may not define, for the same shock and the same period, scale AND value. the can define for the same shock, scale and values for different periods.

Merge request reports