how get covpar member of cmlmtResults structure after some limited iteration?

If I want to get covariance matrix after some certain amount of iteration even if cmlmt doesn't  get normal convergence. for example, after 100 iterations I want to print out the covpar member of the cmlmtResults structure .

4 Answers



0



accepted

Your command file has the equality constraints commented out, but you still are have inequality constraints.  That line you are indicating should be commented out if you activate your equality constraints.  Otherwise you need to comment out the third line down from there for inequality constraints,

out1.lagr.ineqcov = inv(ineqc*inv(h)*ineqc');

Alternatively you could change 'h' in each of this lines to 'h1' and you would not have to comment them out.

 

 



0



c0.maxIters = 100;

struct cmlmtResults res;
res=cmlmt(&likproc,p,d0,c0)

print res.covPar;

 

My version of your program converges after 31 iterations, so setting c0.maxIters = 100 has no effect.  I set c0.maxIters == 10, and I got a covariance matrix of the parameters after those 10 iterations.  I'm not sure though that it can properly be interpreted as a covariance matrix since it has been computed before convergence.



0



Hi, Dr. Schoenberg yes you are right. putting maxiters to some limited iteration can not be useful. but  I sent you a pic that shows where the program has been stopped. you said put // in the first two columns of that line. I want to know, this line is equal as same as what you said? out1.lagr.eqcov = inv(eqc*inv(h)*eqc'); If you answer for this, the problem is solved.

 

Sorry for taking your precious time.


0



There are no words to show my appreciation!

problem is solved

Your Answer

4 Answers

0
accepted

Your command file has the equality constraints commented out, but you still are have inequality constraints.  That line you are indicating should be commented out if you activate your equality constraints.  Otherwise you need to comment out the third line down from there for inequality constraints,

out1.lagr.ineqcov = inv(ineqc*inv(h)*ineqc');

Alternatively you could change 'h' in each of this lines to 'h1' and you would not have to comment them out.

 

 

0

c0.maxIters = 100;

struct cmlmtResults res;
res=cmlmt(&likproc,p,d0,c0)

print res.covPar;

 

My version of your program converges after 31 iterations, so setting c0.maxIters = 100 has no effect.  I set c0.maxIters == 10, and I got a covariance matrix of the parameters after those 10 iterations.  I'm not sure though that it can properly be interpreted as a covariance matrix since it has been computed before convergence.

0

Hi, Dr. Schoenberg yes you are right. putting maxiters to some limited iteration can not be useful. but  I sent you a pic that shows where the program has been stopped. you said put // in the first two columns of that line. I want to know, this line is equal as same as what you said? out1.lagr.eqcov = inv(eqc*inv(h)*eqc'); If you answer for this, the problem is solved.

 

Sorry for taking your precious time.
0

There are no words to show my appreciation!

problem is solved


You must login to post answers.

Have a Specific Question?

Get a real answer from a real person

Need Support?

Get help from our friendly experts.

Try GAUSS for 14 days for FREE

See what GAUSS can do for your data

© Aptech Systems, Inc. All rights reserved.

Privacy Policy