Message/Author 


Hello, I am a new Mplus userthanks for any help or advice! I'm trying to run a measurement model + multiple paths (SEM). I've pasted my model syntax below. There are 8,037 observations (no missing data). The outcome (o1) is binary; I'm using ESTIMATOR = ML. I have three latent variables (f1, f2, f3), and all of my indicators are binary (a1a16) or ordinal/categorical (b1b9, c1c5). I am testing 4 different measured mediators (m1m4), and I have 6 measured covariates (x1x6). I have two questions: 1. MPlus has been running for almost 2 hours now. I'm wondering if this is usualperhaps given the complexity, number of dimensions in my modelor if I need to adjust any settings to help the model converge? 2. Are there any issues with combining binary indicators (latent variable f1) and ordinal indicators (latent variables f2 and f3)? E.g., would the interpretation of the coefficients change for these different factors? Thanks, Travis MODEL: f1 BY a1a16; f2 BY b1b9; f3 BY c1c5; o1 ON f1 f2 f3 m1m4 x1x6; m1 ON f1 f2 f3 x1x6; m2 ON f1 f2 f3 x1x6; m3 ON f1 f2 f3 x1x6; m4 ON f1 f2 f3 x1x6; f1 ON x1x6; f2 ON x1x6; f3 ON x1x6; 


1. How many dimensions of integration did your screen printing say that you have? 2. No problem doing this. The coefficients are in the logit scale so your interpretations of them are in line with logistic regression. 


Hi, Thank you for your reply. The screen printing says I have 3 dimensions of integration. 


That's 15*15*15 = 3375 integration points which shouldn't be too bad if you have several processors (like 8)  but it does get slower with many observations like you have. If you have a slow computer you can try integration = montecarlo(500); but keep an eye on TECH8 to make sure you don't get negative ABS changes due poor precision. 1000 points should still take only a third of the time. 


I'm a student & am running the analysis on my own laptop, which has 1 processor (dual core), so perhaps this explains the long running time. I tried your suggestion with the integration=montecarlo(500) command. This reduced the running time from 4.5 hours to 1 hour. I did check the TECH8 output. The ABS change was negative after the sixteenth step. Can you tell me how to interpret this? I also noticed that while most of the coefficients are approximately the same, some were fairly different. Thank you for your help. 


Negative ABS changes are a sign of numerical imprecision, which is in turn due to a small number of integration points (500 here). Increase to 1000 and see how that comes out. But you could use a faster computer for these sorts of analyses. Also, Bayesian estimation may be faster. 


I'll give it a try. Thank you again for your help. 

mboer posted on Saturday, April 25, 2020  4:58 am



Dear Prof. Muthen, I would like to run a multilevel logistic regression model using 5 datasets with imputed data. I also have 3 dimensions of integration, which takes a lot of computation time (especially since I the estimation runs 5 times). I have used 'integration = montecarlo(1000)' to speed up the computation time. In 2 out of 5 replications, the ABS change was negative. Are my results unreliable? Do you recommend increasing the integration points? Thank you in advance. 


See the FAQ on our web site: TECH8 – negative ABS changes Often 5000 points are needed. 


I am trying to run a logistic regression path model with a continuous X and dichotomous Y, with one moderation (on x>y with a dichotomous V) specified using Define, Model Constraint for 6 indirect effects (where 3 Ms are dichotomous) and their ORs, as well as one moderated mediation (M and V are continuous) and its simple slopes – by combining the code on Chris Stride’s website for Models 4d and 14 (N=1659  639 missing Xs = 1020). When I tried this with Type= General, Estimator=ML, and Bootstrap=10000. I get “FATAL ERROR THIS MODEL CAN BE DONE ONLY WITH MONTECARLO INTEGRATION.” When I added Integration=MonteCarlo, it didn’t stop running for over 12 hours so I had to close the program, I also tried adding "(1000)" but it still continues running (I’m working from home on an old MacBook Air due to Covid19). Then I tried removing Type, Estimator and Bootstrap and adding "Algorithm=Integration", it runs in one minute, but does not provide confidence intervals for the ORs or bootstrap. Is there another way to get the CIs for the ORs (or can I interpret based on pvalue) and to run ML to get the bootstrap? 


There are several issues with what you want to to. It sounds like you have a binary Y and several binary M's. A binary Y calls for "counterfactuallydefined" effects as discussed in these papers: Muthén, B. & Asparouhov T. (2015). Causal effects in mediation modeling: An introduction with applications to latent variables. Structural Equation Modeling: A Multidisciplinary Journal, 22(1), 1223. DOI:10.1080/10705511.2014.935843 Click here to download the paper. Nguyen, T.Q., WebbVargas, Y., Koning, I.K. & Stuart, E.A. (2016). Causal mediation analysis with a binary outcome and multiple continuous or ordinal mediators: Simulations and application to an alcohol intervention. Structural Equation Modeling: A Multidisciplinary Journal, 23:3, 368383 DOI: 10.1080/10705511.2015.1062730 This means that it will be hard for you to do the analysis you want because of your 3 binary M's. You can instead assume that the effects are relevant for M* and Y* continuous latent response variables (instead of the observed binary M and Y variables) for which regular linear regression formulas for effects are valid. Then the analysis can be done by WLSMV or Bayes  but it will be probit and not logit analysis, that is, no odds ratio interpretations. I assume Chris Stride's website concerns M and Y that are continuous where these complications don't arise. 


Thank you for your response! Do you have example code for treating observed M and Y as latent vs. binary with probit? Following Chris Stride’s code 4c&d I used Categorical= for the binary M and Y, and Model Constraint to create Odds Ratios and moderated mediation estimates (14): CATEGORICAL = w1 m4 m5 m6 y; Define: MOD1= x1*w1; MOD2= m1*w2; MODEL: m1 ON x1 (a1); m2 ON x1 (a2); m3 ON x1 (a3); m4 ON x1 (a4); m5 ON x1 (a5); m6 ON x1 (a6); y ON m1 (b1); y ON m2 (b2); y ON m3 (b3); y ON m4 (b4); y ON m5 (b5); y ON m6 (b6); y ON MOD1 (b7); y ON MOD2 (b8); y ON x1 (cdash); MODEL CONSTRAINT: new (ab1 ab2 ab3 ab4 ab5 ab6 OR1 OR2 OR3 OR4 OR5 OR6 Low_w2 Med_w2 High_w2 Ind_Low Ind_Med Ind_Hi); ab1 = a1*b1; ab2= a2*b2; ab3 = a3*b3; ab4 = a4*b4; ab5 = a5*b5; ab6 = a6*b6; ORs1 = exp(a1*b1); OR2 = exp(a2*b2); OR3 = exp(a3*b3); OR4 = exp(a4*b4); OR5 = exp(a5*b5); OR6 = exp(a6*b6); Low_w2 = 70.67; Med_w2 = 85.93; High_w2 = 101.19; IND_LOWSUP = a1*b1 + a1*b7*LOW_w2; IND_MEDSUP = a1*b1 + a1*b7*MED_w2; IND_HISUP = a1*b1 + a1*b7*HIGH_w2; 


Our RMA book describes this in detail in Chapter 8. The odds ratio approach is suitable only for binary Y, not binary M and Y. And it assumes a rare Y. 

Back to top 