

Moderated ACE liability threshold model 

Message/Author 

Mirko Ruks posted on Friday, May 15, 2020  1:04 am



Hello, I am interested in modelling a moderated liability threshold model with twin data. My dependent variable (Y) is ordinal, so I need to estimate a liability threshold model for the liability distribution for Y (Y*). Following the ACEmodelling approach, I decompose the variance of Y* into a genetic component (A), a shared (C) and nonshared (E) environmental component. I want to analyse wheter the effect of A on Y* depends on a observed moderator (M), so I need to model a interaction between the latent A and the observed M. A paper discussing this approach is Medland et al. (2009) "A Note on the Parameterization of Purcell’s G 3 E Model for Ordinal and Binary Data" (see: https://europepmc.org/article/pmc/pmc3988290), where the authors provide a MxScript. My question is, whether it is possible to model such a moderated liability threshold model with Mplus. I have seen that the Mplushomepage provides some script examples of some ACEmodels, including a moderated model with continuous dependent variable (a) and a univariate liability threshold model (b). So  in a certain way  I want to combine these two approaches (a) and (b). Can I do this with Mplus? And if yes: Can you give me a hint where to look for to build my Mplusscript? Thank you very much. 


You could use the approach in User's Guide example 5.23. I think the model you would want is using link=probit, estimator=ML f by Y1Y2@1; f (v); The tetrachoric correlation is c=v/(v+1) and you can make that a function of new parameter a c e ba bc be as well as M and zygot. The function will need to come out of the Figure 1 diagram in that paper. You would have to translate that connection to model constraint: v= Alternatively  you could categorize the M variable say into 5 groups and then use the WLSMV approach given here http://statmodel.com/examples/genetics/ordsatut4.html (that has just two groups for gender but you will need 5) You would have to add model constraint to make the linear model on the parameters. 

Benny posted on Friday, May 29, 2020  11:18 am



Hi, thank you very much for your answer! The two proposals are very helpful but I think your first proposal is comparable with the twin approaches "using parameter constraints" in the User Guide, right (e.g. 5.22). I know that the result is the same but I would like to use the approach "where factors represent the ACE components" (e.g. 5.19). Focussing on this approach I have two doubts/questions: a) So one thing I now try to figure out is how to fix the first two thresholds of the DV and to set free the mean and variance of the continuous latent variable underlying the categorical DV (if the DV is ordinal with >=3 categories) or to fix the variance of the continuous latent variable underlying the categorical DV conditional on the moderator, e.g. var=1mod=0 (if the DV is binary). Could you give me a hint concerning the commands which are neccessary for these kinds of constraints? b) Having read the chapters of the User Guide discussing interactions between a latent continuous variable (here A,C,E) and a observed continuous variable (here the moderator), it should be possible to model the interaction between A,C,E and mod with XWITH or am I mistaken here? Thank you! 


With ML currently there is no way to change the variance or loading of E. Both are fixed to 1 and there is no such variable in the model (it is a residual that you don't have access to). You will need to reformulate this model to that scale Var(E)=1  this is not very hard. Because of that b) is not feasible, and probably a) as well  at least it doesn't look like something I can recommenced (as it complicate a model that is already complicated). Just hold the thresholds equal between the two variables and use Var(E)=1 as a scale setter. You can then use again the constrain=M option and give the expressions for loading of C (or even better variance of C) and loading of A (these expressions would be analytically derived. I would recommend that you work through that approach first without M as even that requires some technical tweaks: you want one C and two A1 and A2 with cov(A1,A2)=0.5 and cov(A1,A2)=0.99 for the two groups. The next (least complex) model would be the model with beta_e=0 (no analytical expressions). 


The model with beta_e=0 could be implemented with XWITH. 

Back to top 

