Skip to content

Discuss interface for method of Moments in Dynare (GMM, SMM, IRF Matching)

Hey, I am working on a first draft for a toolbox for moment estimation with GMM, SMM and IRF-Matching (I will start with GMM, then SMM, and deal with IRF-matching later) which will work for perturbation (with pruning) up to third-order. I have a couple of questions|proposal for the best interface and call for this and would like your guys take on this.

Declaring parameters

Here I would simply opt to what we do in a Maximum likelihood estimation and use the same syntax in an estimated_params or an estimated_params_bounds block:

stderr VARIABLE_NAME | corr VARIABLE_NAME_1, VARIABLE_NAME_2 | PARAMETER_NAME, LOWER_BOUND, UPPER_BOUND;

Declaring which moments to use

Here I would propose a block similar to moment_calibration, but call it estimated_moments:

estimated_moments;
y_obs,y_obs; //[unconditional variance]
y_obs,y_obs(-(1:4)); //[some acf]
@#for ilag in -2:2
y_obs,R_obs(@{ilag}); //[ccf]
@#endfor
end;

Invocation

Now the toughest question. How to invoke it? I see two options.

Option A: Add an option to estimation, e.g.

estimation(moments_estimation='GMM');

Option B: Have an own command for this, e.g.:

gmm_estimation(OPTIONS);
smm_estimation(OPTIONS);
irf_matching(OPTIONS);

which then internally calls a wrapper dynare_moments_estimation.m and runs the toolbox.

What do you guys think?

Edited by Johannes Pfeifer