Page 1 of 1

Matrix must be positive definite

PostPosted: Sat Mar 26, 2011 3:14 pm
by 82323100
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

POSTERIOR KERNEL OPTIMIZATION PROBLEM!
(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
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 ==> moni at 259
dynare_estimation(var_list_);

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

Re: Matrix must be positive definite

PostPosted: Sun Mar 27, 2011 7:11 am
by aeneous
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.

Re: Matrix must be positive definite

PostPosted: Tue Mar 29, 2011 12:34 am
by rzulfadin
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.
RZ