Hi there
sometimes when I run command file which uses cmlmt, Despite, more iterations, could not get convergence.
I want to know, how can I deal with this? do make some changes in Algorithm setting, can be useful or I have to do somethings else?
2 Answers
0
There are a few common possibilities. If the surface of the log-likelihood function is relatively flat, the algorithm can have trouble finding a real local minimum. Also if the data is scaled poorly, there can be catastrophic cancellation in the computation of the derivatives. In that case, the algorithm will not be able to find a correct search direction.
What are your CMLMT control settings?
0
// Algorithm settings
struct cmlmtControl c0;
c0=cmlmtControlCreate;
c0.Algorithm=4;
c0.LineSearch=4;
c0.CovParType=2;
c0.printIters=1;
c0.DirTol=0.0001;
//c0.TrustRadius=0.001;
//c0.Switch=1|10000000|0;
//c0.Switch={3 1, 0.1 0.1, 1 1, .001 .001};
Your Answer
2 Answers
There are a few common possibilities. If the surface of the log-likelihood function is relatively flat, the algorithm can have trouble finding a real local minimum. Also if the data is scaled poorly, there can be catastrophic cancellation in the computation of the derivatives. In that case, the algorithm will not be able to find a correct search direction.
What are your CMLMT control settings?
// Algorithm settings
struct cmlmtControl c0;
c0=cmlmtControlCreate;
c0.Algorithm=4;
c0.LineSearch=4;
c0.CovParType=2;
c0.printIters=1;
c0.DirTol=0.0001;
//c0.TrustRadius=0.001;
//c0.Switch=1|10000000|0;
//c0.Switch={3 1, 0.1 0.1, 1 1, .001 .001};