Cholesky non positive definite

Hello everyone,

I’m running the estimation of a model and I face the following problem, the Cholesky matrix is non positive definite. I know that in order to solve the problem we can start by changing the algorithm but if this does not work, the second solution is to change the prior of the parameters. My question is the following, how do you know if the new value of the prior improve the estimation procedure or not ? How to know if we work in the good direction ?
Thanks in advance for your answers.
Best regards,

The first step is always to have a look at the mode_check-plots.

Dear Mr Pfeifer,

Thanks for your reply.

Once you have checked at the plots ? What are the criteria that guide you to know which prior you have to change but also if you need to increase or decrease the value of the prior ?
Thanks in advance.

Often it’s not about the prior. It very much depends on what the plots show, e.g. identification errors, parameter bounds, failure to solve the model etc.

How can you identify what are the problems based on the graphs ( identification errors vs others) ? Also I have another question because I have seen on another topic that you have made this suggestion: how can you tell to dynare to start the new estimation procedure based on the previous run ? For instance, if I want to change the alogrithm and try to estimate it again, how can I tell to dynare not to start from 0 but instead to start from the previous run with the previous algorithm ? Thanks in advance for your reply and for your time.

  1. Please upload your mode_check-plots. That makes it easier to discuss.
  2. By using the mode_file of the previous run, you can continue with it.

Dear Mr Pfeifer,

Thanks for you reply and for your help. Please find attached the mode_check plots of my model. I send it in two messages because there are 8 graphs.

Secondly, when I put the mode_file option in the estimation command, I have the impression that each time I try with another algorithm that the value inside the hessian matrix hh are always the same ?

Again thanks for you reply,


The obvious issue here is sigeps, which seems to be at the corner of the prior space. That is not an interior solution.

Ok I see what you mean, but for instance if I change the algorithm this is no longer the case, is it normal ?
Secondly, how do you save an estimation run results in order to use it for another run and to try to improve the estimation ?
Because I have the impression that if I just add the mode_file option in the estimation command, it does not change the results and the values in the hessian matrix hh.

  1. That depends. Different optimizers may converge to different modes. You need to check which one is the better mode in that case.
  2. What do you mean with

The mode-file option will load the last mode and restart at the value. Of course, if the optimizer cannot improve on that value, you will remain at this mode.

I will rephrase it more clearly, when you do a first run of the estimation with for instance algorithm 4, if it does not converge and if the hessian is not positive definite, you can still try with another algorithm that will start from the previous run that failed no ?
I mean, instead of starting again from 0 with another algorithm, you can try to start from the previous run that will try to improve what algorithm 4 has done previously no ?

Yes, that is exactly what using the mode-file from the previous run would do.

But how do we do that ? just by adding the mode_file option in the estimation command ?
In other words, do the mode_file update automatically at each run ?

Yes, each mode-finding run will update the mode-file.