Going back to OpenMX 1: Confidence intervals of ACE model not showing
Posted on
Rolandgem
Joined: 10/24/2015
Attachment | Size |
---|---|
Openmx1.R | 11.05 KB |
Forums
I am trying to get the confidence intervals for the ACE model, but for some reason they are not showing up in OpenMX version 2. I have been advised to try and run the model in OpenMX version 1.4 so I have been changing some functions in my code to make it compatible.
So far I changed mxExpectationNormal to mxFIMLObjective; and mxFitFunctionAlgebra with mxAlgebraObjective based on what i've found online.
I am still getting one error as follows:
"Error: could not find function "mxFitFunctionML"
Could you please advise how I should edit my code for it to work in OpenMX version 1.4?
So far I changed mxExpectationNormal to mxFIMLObjective; and mxFitFunctionAlgebra with mxAlgebraObjective based on what i've found online.
I am still getting one error as follows:
"Error: could not find function "mxFitFunctionML"
Could you please advise how I should edit my code for it to work in OpenMX version 1.4?
Thanks!
I am still getting one error
mxFitFunctionML()
didn't exist in OpenMx version 1. Instead, "objectives" carried out the roles that are now split between "fitfunctions" and "expectations." Just delete all the instances ofmxFitFunctionML()
from your code; they're extraneous.Could you describe this problem further?
Log in or register to post comments
In reply to I am still getting one error by AdminRobK
Thank you very much for your
The problem was that when trying to generate confidence intervals for the sub models AE and CE, I would get an error (NA !!!) in some of the upper bounds, and when I expand the results I would get an upper bound greater than 1. This problem occurs when I run these sub models in the new OpenMX with the following code:
CEModel <-mxModel( AceFit, name="CE")
CEModel <-omxSetParameters( CEModel, labels="a11", free=F, values=0 )
CEFit <-mxRun(CEModel, intervals=T)
(CESum <-summary(CEFit, verbose=T))
round(CEFit@output$estimate,4)
round(CEFit$Est@result,4)
mxEval(MZ.A, CEFit)
mxEval(MZ.C, CEFit)
mxEval(MZ.E, CEFit)
The results for the confidence intervals are as follows:
confidence intervals:
bound estimate ubound note
MZ.A[1,1] NA 0.0000000 NA !!!
MZ.C[1,1] 0.3630855 0.4230395 0.5282773
MZ.E[1,1] 0.4717223 0.5769605 NA !!!
CI details:
parameter value side fit BaTH BsTH BpTH BparTH Th11 c11 e11
1 MZ.A[1,1] 0.0000000 upper 1887.154 -0.01503094 -0.2214035 0.01372319 -0.3057541 1.977253 0.6504149 0.7595791
2 MZ.A[1,1] 0.0000000 lower 1887.154 -0.01503094 -0.2214035 0.01372319 -0.3057541 1.977253 0.6504149 0.7595791
3 MZ.C[1,1] 0.5282773 upper 1890.996 -0.01514985 -0.2152637 0.01637458 -0.2903185 1.930830 0.7268269 0.6868207
4 MZ.C[1,1] 0.3630855 lower 1890.995 -0.01265185 -0.2719947 0.02252237 -0.2785094 1.937280 -0.6025657 0.7980692
5 MZ.E[1,1] 1.1683689 upper 1937.110 -0.01503094 -0.2214035 0.01372319 -0.3057541 1.977253 0.2751512 1.0809111
6 MZ.E[1,1] 0.4717223 lower 1890.996 -0.01514503 -0.2153946 0.01639248 -0.2906954 1.931692 0.7268271 0.6868205
I tried running this on OpenMX V1 with the following code and results:
CEModel <-mxModel( AceFit, name="CE")
> CEModel <-omxSetParameters( CEModel, labels="a11", free=F, values=0 )
> CEFit <-mxRun(CEModel, intervals=T)
> (CESum <-summary(CEFit, verbose=T))
Confidence intervals:
lbound estimate ubound
MZ.A[1,1] 0.0000000 0.0000000 0.0000000
MZ.C[1,1] 0.3084175 0.4230232 0.5283611
MZ.E[1,1] 0.4716388 0.5769768 0.6915826
Thanks again for you help!
Log in or register to post comments
In reply to Thank you very much for your by Rolandgem
Difference in optimizers?
In OpenMx v2.2.x and later, the on-load default optimizer is SLSQP, whereas in OpenMx version 1.x, NPSOL was the only available optimizer. I don't see in your script that you switched optimizers anyplace. I'm wondering, if you stuck
mxOption(NULL,"Default optimizer","NPSOL")
in your script, after you load packages, would you then get the same results that you got from OpenMx version 1?Log in or register to post comments