code blue and what to do about it

Posted on
Picture of user. tbates Joined: 07/31/2009

Question from a user: What is code blue, what should one do, and where is it documented?

In model 'common_path_constraint_ACE' NPSOL returned a non-zero status code 4. The major iteration limit was reached (Mx status BLUE).

Replied on Mon, 10/11/2010 - 10:11
Picture of user. Ryne Joined: Jul 31, 2009

A code blue means that the model hit the major iteration limit (which is set at 1000 by default). This means that your model didn't converge in the first 1000 iterations, so it stopped to save itself and you from waiting forever. Things I'd check:

-is your model identified?
-were your starting values very very bad?
-is your model so complex that 1000 iterations is too low?

If you want to keep fitting your model without altering, use the values returned from your status BLUE model to start again and/or rerun the model after using mxOption to set the major iteration limit higher. Hitting iteration limits is fairly uncommon for the size and complexity of models OpenMx is typically used for; unless your data contains a very large number of parameters such that its reasonable for optimization to be difficult, I'd try to alter the model. Having more information, though, would be helpful in diagnosing this problem.

More info is on pages 39-40 of the NPSOL manual, though it is in extremely technical language. I'm sure other users will chime in as well.

Replied on Tue, 10/12/2010 - 09:39
Picture of user. neale Joined: Jul 31, 2009

Agreed. I think it would be helpful if the warning returned by OpenMx contained a succinct description of the situation and possible remedies along with exact syntax required to implement them. Doing so would save time when other users encounter the same issue.

Replied on Mon, 10/18/2010 - 02:47
Picture of user. Steve Joined: Jul 30, 2009

In reply to by neale

I like the syntax idea!

This make me wonder about error messages in general.

We are working in R, so it might be useful to have error messages print out one or more lines of references to help() functions or a web address to the specific chapter in the OpenMx manual that would take the user to where they need to go in both the OpenMx and R help in order to read up on exactly what they need to know to fix what happened.

Makes me wonder why others aren't doing this. Maybe the easiest would be to set up a set of web forwarding addresses for each error message. Then the source code wouldn't need to change if the manual changed. We'd just need to update the forwarding pointers.

Replied on Wed, 10/20/2010 - 09:47
Picture of user. neale Joined: Jul 31, 2009

In reply to by Steve

Yes, nice to url it, although we should allow people to work off the net. help()'s will do that. If there is a local copy of the manual, then links to it would work nicely. This approach would also allow for language localization, if there are at some future date translations of the manual.