Error using ==> chol Matrix must be positive definite

Hi

I am using the dynare 4.1.1. with MATLAB R2008b version 7.7. on Windows 7. When I run there is such a problem:

??? 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 43
ix2, ilogpo2, ModelName, MhDirectoryName, fblck, fline, npar, nblck, nruns, NewFile, MAX_nruns, d ] = …

Error in ==> dynare_estimation_1 at 1057
feval(options_.posterior_sampling_method,‘DsgeLikelihood’,options_.proposal_distribution,xparam1,invhess,bounds,gend,data,…

Error in ==> dynare_estimation at 62
dynare_estimation_1(var_list,varargin{:});

Error in ==> azerbaijan at 788
dynare_estimation(var_list_);

Error in ==> dynare at 132
evalin(‘base’,fname) ;

Could you please help me and say where is the problem and how can I fix it? My codes are attached.

Thank you.

Best,
Ali
Dynare.rar (8.89 KB)

Hi, this error message tells that minus the hessian matrix at the estimated posterior mode is not positive definite as it should be. This means that the optimization routine (csminwel by default) didn’t stop on the posterior mode. You need to get a better estimate of the posterior mode (starting with different initial conditions, changing the optimization routine…). Best, Stéphane.

1 Like

Dear Stéphane

Thank you for your response. But how can I change the optimization routine? Could please help me?

And by changing the initial values there emerge other problems.

Hi,
you could try using

in the estimation command (see dynare.org/DynareWiki/MonteCarloOptimization or the respective forum threads).

Dear Jpfeifer,

Thanks very much!

I fixed it!

Thanks again!

Best

Lixin

Dear Professor Jpfeifer, could you please provide this link again?

The current link should be mode compute 6 · Wiki · Dynare / dynare · GitLab