Matrix must be positive definite

Dear everyone:
please help me! My mod codes cannot works.

improvement < crit termination
smallest step still improving too slow, reversed gradient
Objective function at mode: 1127.793723
Objective function at mode: 1127.793723

(minus) the hessian matrix at the “mode” is not positive definite!
=> posterior variance of the estimated parameters are not positive.
You should try to change the initial values of the parameters using
the estimated_params_init block, or use another optimization routine.
Warning: The results below are most likely wrong!
??? Error using ==> chol
Matrix must be positive definite.

Error in ==> metropolis_hastings_initialization at 52
d = chol(vv);

Error in ==> random_walk_metropolis_hastings at 58
ix2, ilogpo2, ModelName, MhDirectoryName, fblck, fline, npar, nblck,
nruns, NewFile, MAX_nruns, d ] = …

Error in ==> dynare_estimation_1 at 1106

Error in ==> dynare_estimation at 62

Error in ==> moni at 259

Error in ==> dynare at 132
evalin(‘base’,fname) ;
data_Est.xls (26.5 KB)
moni.mod (2.72 KB)

There’s been several threads on this topic. I think the suggestion is to use an MCMC algorithm for finding the posterior modes, i.e. use mode_compute=6.

Right. Using mode_compute=6, which almost always able to find posterior mode, can solve the problem. However, it will take much longer time to compute.

Regarding the problem, is anyone has any idea of why the problem (the “not positive definite” or “non-invertible hessian” problem) occurs? Is it data problem (for example badly scaled variables)? Is it model specification problem? or is it computation problem?

Thank you.