A Problem in GMM Estimation

Hello, everyone

I am new to Dynare and encountered a problem with GMM estimation: the optimization completed after the first iteration in the second stage. Therefore, the estimated parameters always stay at the initial values I input, as you can see from the snapshots.

It is not shown as a bug because the program continues to run, but I cannot get any useful information from such estimation. Can anyone help me with that? I have attached the .mod file, the data file, and the steady-state computation file. Great thanks!

Best,
Mingzuo

myfile.xls (31 KB)
example3.mod (2.9 KB)
example3_steady_state_helper.m (255 Bytes)

Matlab’s optimizer performs surprisingly poor without explicit bounds set. Try e.g.
example3.mod (2.9 KB)

Thanks a lot, Prof. Pfeifer. It works this time! Can I ask you another question: where can I find the estimated parameters? At present, I am only able to find the parameters in my command window. However, aren’t they supposed to be found under “estim_params”? Now they are still shown as NaN there.

estim_params_ is a setup structure for internal use. Results are stored in oo_.mom. For example oo_.mom.gmm_stage_2_mode.parameters

Thanks for your clarification, Professor. I have another question to follow up on: under some circumstances, the standard errors of the estimated parameters are missing, like below. Is it a big problem? In other words, can I feel safe using these estimated parameters?

You can see the warning message above. There was an issue during estimation due to a parameter hitting the upper bound. Which optimizer did you use?

I think the optimizers are all set at their defaults: options_mom.mode_compute=13 and options.mode_compute=4. Is there a way for parameters not to hit the bounds?
example3.zip (12.6 KB)

The error message is misleading. The problem is that CC_e_u hits the upper bound, preventing to compute the Jacobian using finite differences.