Hi all!
When reading through the optimization innards of OpenMx, I came across this piece of code:
in npsolWrap.c, l.356:
if((x[k] == 0.0) && !disableOptimizer) { x[k] += 0.1; }
If I am not mistaken, the array x holds the starting values at that time point. I presume that this if-clause is included in order to avoid some "bad" starting conditions of the model-implied covariance matrix. However, shouldn't users be informed or warned that the model is actually fitted with different starting values than those they had specified?
best regards,
Andreas
This is a tricky one.
As a matter of principle, I agree that we should be informing the user that we jiggled their starting values away from 0.0. However, there are a couple of caveats in this particular case:
warning()
. My opinion is that warnings are useless, because programmers tend to ignore them.In any case, we should probably document this behavior in the
?mxRun()
file.I agree with all your points.
I like the mxOption() very much. I can imagine having the possibility for specifying a "behavior" for start values, which in the long run could be, e.g.: