Hello,
I'm running a relatively complex model with binary outcomes (but well under the max 20 ordinal vars). I'm fixing mean=0, var=1 and letting thresholds vary. Things periodically fail with:
error in runHelper(model, frontendStart, intervals, silent, suppressWarnings, : xn out of range
Starting values can seem to cause this (even when mxTryHardOrdinal is jiggling around values close to the optimum some tries will fail out with this), also increasing complexity (doing a multiple groups analysis), also sometimes decreasing mvnRelEps will cause this.
Any ideas of what might be going on or how to debug this further?
Thanks for the help!
This happens when the thresholds are too far away from the mean. Do you have any binary indicators which have an extreme proportion of responses (almost all 1 or 0)?
I made some changes to improve the diagnostic output. Can you build from source 6bf6d3a8587 and try again?
When I install_github I get this build error:
I checked out the repo manually and did a "make cran-install" and it seems to be compiling now -- is there a way to do a cran-install from install_github?
Here's the output I get:
I wonder how those NaNs got there. Gotta think about that.
As a work around, you can try
mxFitFunctionML(jointConditionOn = "continuous")
.Did you set a lower bound of 1e-3 on your ordinal variances?
Can you try again with e6b94c0e02f3 ?
> Did you set a lower bound of 1e-3 on your ordinal variances?
all my ordinal vars are set fixed variance = 1, mean = 0, thresh are free.
> Can you try again with e6b94c0e02f3 ?
Awesome, this seems to be working... it's been running over 10mins now and usually dies after 2min. I'll let you know if it makes it to the end...
Thanks for your help!!
Just wanted to confirm that this is working for the large multigroup models I was trying to run. Thanks again!
Is there any way these changes could result in a segfault? I'm getting this error occasionally when I'm running:
Let me know if there's any other debug info I can send on this!
Does this happen with mxFitFunctionML(jointConditionOn = "continuous") too?
I'll give jointConditionOn a shot in a bit; the cluster I'm working on is down right now for maintenance. One thing I figured out though, is that it works just fine if I limit it to a single thread...
I'm wondering now if it might have to do with the way the cluster will suspend low priority jobs and then resume when resources become available again; I'm wondering if OpenMx might not respond well to this when working with multiple threads. Once the server gets back up I'll see if I can run it in a way that I can be sure it won't get suspended and let you know. (I'll try the "continuous" option as well)
> if it might have to do with the way the cluster will suspend low priority jobs and then resume when resources become available again
No, if it obtains a SEGV then it's an OpenMx bug. If you can provide a gdb stack trace then it might help track the problem down.
Here's the stack trace -- let me know if this is enough or I should recompile OpenMx with debugging (is that enabled in the ./configure script?)
I'll try "continuous" next to see if it crashes too.
Ok, now running it with valgrind (with debug symbols) and getting this (even when using only a single thread):
It gets over 1000 errors before even reaching "Begin Initial Fit Attempt". Maybe an off by 1 error somewhere?
I don't get errors on simple models... Maybe it's something to do with ordinal or multigroup code? I'll have to work sometime later to narrow it down to a minimal repeatable example.
Gah! I can't recall which version you're trying. Maybe you can update to the HEAD of master?
Just updated to HEAD of master and still get the memory leaks. I'll start an issue on github once I narrow it down to a MWE
Also, since you're not running a release, maybe we should open a GitHub issue and troubleshoot there. These forums are mostly for modeling questions. Software problems are more suited to GitHub.
is it possible to change the fitfunction of an already built model? I'm using umxSuperModel to build my multigroup, which uses mxFitFunctionMultigroup under the hood. Can I take the super model and then change the fitfunction after it's already built, or do I need to stop using supermodel and build the multigroup model manually?
Using umxSuperModel is fine.
To swap the fit function for a model, just add it to the model, and it will replace the existing one. So
Thanks Tim!
> is there a way to do a cran-install from install_github?
Sorry, no.
yup, definitely have extreme responses:
(# true / # false)
Indicator 1: 2051 / 11147
Indicator 2: 2182 / 9264
Indicator 3: 2917 / 7715
Indicator 4: 2432 / 7411
Indicator 5: 2136 / 7063
any way to handle these?
Those data don't seem all that extreme. Seems like the model should work.