Hi, everyone. I found that when construct submodels, such as AE or CE models, the usual commands are like this:

AEModel <- mxModel(ACEFit, name="AE",

mxModel(ACEFit$ACE,

mxMatrix( type="Lower", nrow=nv, ncol=nv, free=F, values=0, name="c" ) # drop c at 0

))

, not this:

AEModel <- mxModel(ACEModel, name="AE",

mxModel(ACEModel$ACE,

mxMatrix( type="Lower", nrow=nv, ncol=nv, free=F, values=0, name="c" ) # drop c at 0

))

. The mxRun() results would be a little different. I want to know which one is better.

In principle, both approaches should give the same answer. In practice they may differ for reasons of numerical precision, and depending on how poor the starting values are in each. Sometimes dropping a parameter - particularly one with a substantial estimate - without adjusting the starting values of the remaining free parameters can result in very poor outcomes. This is because the predicted variance will typically shrink, and some observations may end up so many standard deviations from the mean that the likelihood is essentially zero. The same thing could happen when dropping a variance component parameter which has an arbitrary starting value like .6.

In the end, the best solution would be the one with the lowest (largest negative or smallest positive) -2lnL. Possibly, refitting that model from its solution would increase confidence that the solution is a global minimum.

Thank you for your detailed reply and concrete suggestion. :-)