Hi,

I ran the saturated bivariate submodels to check whether the assumptions of equality of means and variance were met, and I noticed something quite interesting: although the submodels were significantly different from the saturated full model when I constrained the means across twins and zygosity, the submodel which constrained means and variances across twins and zygosity was not significantly different from the saturated full model. Are there any possible explanations for this? And can I still go ahead and run the bivariate cholesky models even though the equal means assumption is violated?

Thanks and best regards,

Yi

Hi Yi,

I want to make sure I understand the question. Say you have these three models

Are you saying you found Sat and SatM were different, but Sat and SatMV were not different?

Hi Hunter,

Yes, that's right. Here's the output I got:

> # ------------------------------------------------------------------------------

> # RUN SATURATED SUBMODELS

>

> # Constrain expected Means to be equal across twin order

> eqMeansTwinModel <- mxModel( twinSatModel, name="eqMeTwins" )

> for (i in 1:nv) {

+ eqMeansTwinModel <- omxSetParameters( eqMeansTwinModel, label=c(laMeMZ[nv+i],laMeMZ[i]), free=TRUE, values=svMe[i], newlabels=laMeMZ[i] )

+ eqMeansTwinModel <- omxSetParameters( eqMeansTwinModel, label=c(laMeDZ[nv+i],laMeDZ[i]), free=TRUE, values=svMe[i], newlabels=laMeDZ[i] ) }

> eqMeansTwinFit <- mxRun( eqMeansTwinModel, intervals=T )

Running eqMeTwins

> # Constrain expected Means to be equal across twin order and zygosity

> eqMeansZygModel <- mxModel( eqMeansTwinModel, name="eqMeZyg" )

> for (i in 1:nv) {

+ eqMeansZygModel <- omxSetParameters( eqMeansZygModel, label=c(laMeMZ[i],laMeDZ[i]), free=TRUE, values=svMe[i], newlabels=laMeMZ[i] ) }

> eqMeansZygFit <- mxRun( eqMeansZygModel, intervals=T )

Running eqMeZyg

> # Print Comparative Fit Statistics

> SatNested <- list(eqMeansTwinFit, eqMeansZygFit)

> tableFitStatistics(twinSatFit, SatNested)

Name ep -2LL df AIC diffLL diffdf p

Model 1 : twinSat 28 1104.54 275 554.54 - - -

Model 2 : eqMeTwins 24 1114.98 279 556.98 10.44 4 0.03

Model 3 : eqMeZyg 22 1122.33 281 560.33 17.78 6 0.01

> # Constrain expected Variances to be equal across twin order (and all the means as well..)

> eqVarsTwinModel <- mxModel( eqMeansZygModel, name="eqThTwins" )

> for (i in 1:nv) {

+ #making cov[1,1]=cov[3,3];cov[2,2]=cov[4,4]

+ eqVarsTwinModel <- omxSetParameters( eqVarsTwinModel, label=c(paste("covMZ_",nv+i,"

",nv+i,sep=""),paste("covMZ",i,"",i,sep="")),",i,"+ free=TRUE, values=svVa[i], newlabels=paste("covMZ

",i,sep="") )",nv+i,"+ eqVarsTwinModel <- omxSetParameters( eqVarsTwinModel, label=c(paste("covDZ

",nv+i,sep=""),paste("covDZ",i,"",i,sep="")),",i,"_",i,sep="") ) }+ free=TRUE, values=svVa[i], newlabels=paste("covDZ

> eqVarsTwinFit <- mxRun( eqVarsTwinModel, intervals=T )

Running eqThTwins

> eqVarsTwinSumm <- summary( eqVarsTwinFit )

> tableFitStatistics(twinSatFit, eqVarsTwinFit)

Name ep -2LL df AIC diffLL diffdf p

Model 1 : twinSat 28 1104.54 275 554.54 - - -

Model 2 : eqThTwins 18 1122.49 285 552.49 17.94 10 0.06

It looks like the eqThTwins-twinSat comparison is just barely not significant. The fit of eqThTwins is essentially the same as eqMeZyg, but eqThTwins uses fewer free parameters. Right now you're comparing everything to the saturated model: a vs b, a vs c, a vs d. If it were me I'd rather compare nested models in sequence: a vs b, b vs c, c vs d. For the results you reported, it would look like this.

Name ep -2LL df AIC diffLL diffdf p

Model 1 : twinSat 28 1104.54 275 554.54 - - -

Model 2 : eqMeTwins 24 1114.98 279 556.98 10.44 4 0.03

Model 3 : eqMeZyg 22 1122.33 281 560.33 7.35 2 0.025

Model 4 : eqThTwins 18 1122.49 285 552.49 0.16 4 0.99

This would suggest you lose important information going from twinSat to eqMeTwins; and going from eqMeTwins to eqMeZyg; but don't lose important information going from eqMeZyg to eqThTwins.

Thank you Michael for your helpful explanation. Given that I lose important information from twinSat to eqMeTwins, will I still be able to run bivariate ACE model then? Or are there some changes I need to make to the model?

Hi Yi,

I'm relatively new to this area and your last question to Michael caught my eye. What answer did you find this? I imagine that the bivariate ACE models would not be appropriate to run in this scenario, but wonder what strategies you found when trying to deal with this?

Cheers

Pradeep