Estimated_params_init

Dear Dr Pfeifer,

It seems that I cannot really understand the way that Estimated_params_init block works. The only thing i found about is that: This block declares numerical initial values for the optimizer when these ones are different from the prior mean.

  1. How should I know if these values are different from the priors ?? since I dont even know the values I should set ?? How can I find these values ??
  2. I have tried estimating my model without this block, only specifying the priors, and it seems that it works fine. Is that wrong ? should I worry about it??

Much appreciated

  1. In principle, starting values should not matter. In practice they often do. Sometimes you think the most likely parameter value is different from the prior mean. For example, the prior on the Calvo parameter often has mean 0.5, but in the posterior it will often be around 0.75. The estimated_param_init-block allows you to easily incorporate this. However, if you have no clue how to set this, then by definition your best guess is the prior mean/mode.
  2. If it works, you should not worry. Any starting value should work.

See also [Smet and Wolter DSGE for EU)

Just a quick question Dr., When I use the mode_compute=4 igot the following error:

[quote]Error using chol
Matrix must be positive definite.

Error in posterior_sampler_initialization (line 83)
d = chol(vv);

Error in posterior_sampler (line 59)
ix2, ilogpo2, ModelName, MetropolisFolder, fblck, fline, npar, nblck, nruns,
NewFile, MAX_nruns, d ] = …

Error in dynare_estimation_1 (line 438)
posterior_sampler(objective_function,posterior_sampler_options.proposal_distribution,xparam1,posterior_sampler_options,bounds,dataset_,dataset_info,options_,M_,estim_params_,bayestopt_,oo_);

Error in dynare_estimation (line 105)
dynare_estimation_1(var_list,dname);

Error in DSGE_recursive (line 383)
oo_recursive_=dynare_estimation(var_list_);

Error in dynare (line 223)
evalin(‘base’,fname) ;

Error in DSGE_run (line 1)
dynare DSGE_recursive.mod; [/quote]

but if I use the mode_compute=6 the code runs fine. Is there any interpretation behind that?

Many thanks

These are conceptually different optimizers. mode_compute=4 is derivative-based on local, while 6 is “global” and does not use derivatives. They may perform very different in different circumstances. Moreover, the way the Hessian at the mode is computed differs.

Dear Professor,

I have the impression that mode_compute=6 is much much more time consuming than mode_compute=4. Is that correct?

Thank you

Yes, that is correct. Using derivatives improves speed, but potentially confines you to finding only local optima.