running a tri-bivariate ACE model, and the results can be all over the show (with no convergence warnings), depending on the start values: for instance C wandering from .998 to .054 for one variable.
Any thoughts?
Here are the results, and script fragment
Results starting at a, c, and e at .6
A1 A2 A3 C1 C2 C3 E1 E2 E3 var1 0.284 NA NA 0.282 NA NA 0.434 NA NA var2 -0.292 0.027 NA 0.998 0.434 NA 0.294 0.539 NA var3 0.224 -0.028 0.206 0.366 0.458 0.196 0.411 0.570 0.598 [1] 7550.711
Now, starting at a=.6, c=.3, e=.4
A1 A2 A3 C1 C2 C3 E1 E2 E3 var1 0.560 NA NA 0.006 NA NA 0.434 NA NA var2 0.652 0.343 NA 0.054 0.118 NA 0.294 0.539 NA var3 0.636 0.477 0.277 -0.047 -0.047 0.124 0.411 0.570 0.598 [1] 7550.711
relevant fragment
<
pre>
share = mxModel("share",
mxMatrix("Lower", nrow=nVar, ncol=nVar, free=TRUE, values=.6, name="a", byrow=TRUE), # Additive genetic path coefficient
mxMatrix("Lower", nrow=nVar, ncol=nVar, free=TRUE, values=.6, name="c", byrow=TRUE), # Common environmental path coefficient
mxMatrix("Lower", nrow=nVar, ncol=nVar, free=TRUE, values=.6, name="e", byrow=TRUE), # Unique environmental path coefficient
# Multiply by each path coefficient by its inverse to get variance component
mxAlgebra(a %% t(a), name="A"), # additive genetic variance
mxAlgebra(c %% t(c), name="C"), # common environmental variance
mxAlgebra(e %*% t(e), name="E") # unique environmental variance
)
mzModel = mxModel(share, name="MZ",
expMZMeans,
# MZ ACE algebra
mxAlgebra(rbind (cbind(A+C+E , A+C),
cbind(A+C , A+C+E)), dimnames = list(selVars, selVars), name="expCov"),
mxData(mzData, type="raw"),
mxFIMLObjective("expCov", "expMean")
)
dzModel = mxModel(share, name="DZ",
expDZMeans,
mxAlgebra(rbind (cbind(A+C+E , .5%x%A+C),
cbind(.5%x%A+C, A+C+E) ), dimnames = list(selVars, selVars), name="expCov"),
mxData(dzData, type="raw"),
mxFIMLObjective("expCov", "expMean")
)
Build and Run ACE model
twinACEModel = mxModel("twinACE",mzModel, dzModel, mxAlgebra(MZ.objective + DZ.objective, name="twin"), mxAlgebraObjective("twin") )
twinACEFit = mxRun(twinACEModel)