Message/Author 


Dear Linda, I have run a unit level analysis and found the results are so much different by applying the analysis: Type = Complex. I have used the same specification one with this command line and the other without. I found the model fit indices (esp. RMSEA) from the two runs are glaringly different. When applying Analysis: Type = Complex; the fit indices gave: RMSEA .032 CFI .923 TLI .914 When removing the analysis command line; the fit indices gave: RMSEA .093 CFI .897 TLI .889 In my analysis, I also used Cluster = location; Stratification = region; I would like to know why this is the case. Which one is more appropriate given the nature of my study? Thanks. Pat 


If you have nested data and the results differ when you use COMPLEX, then you should use COMPLEX. When you do not use COMPLEX, chisquare is inflated giving a worse RMSEA than when you take the nested nature of your data into account. 


Thanks for the advise. But, when I use COMPLEX, I got Probability RMSEA <= .05 equal 1.000. Whereas when I do not use COMPLEX, probability RMSEA is 0.000. What does this mean? Is the result from the model using COMPLEX still appropriate? Thanks. 


This agrees with what is expected. With complex you should obtain a better RMSEA which you do. You should use COMPLEX with your data. 

Luo Wenshu posted on Monday, December 05, 2011  12:22 am



Dear Linda, I am testing a SEM model with 13 latent variables and 2 observed covariates. There are 3 variables with large ICC (>.10) (cluster size about 15). I tried estimating a twolevel measurement model, but the estimation did not converge. Two ways were tried from here. One is to use composite scores to run a twolevel path model.By specifying the same free paths across two levels I got the informaiton: THE STANDARD ERRORS OF THE MODEL PARAMETER ESTIMATES MAY NOT BE TRUSTWORTHY FOR SOME PARAMETERS DUE TO A NONPOSITIVE DEFINITE FIRSTORDER DERIVATIVE PRODUCT MATRIX. THE NONIDENTIFICATION IS MOST LIKELY DUE TO HAVING MORE PARAMETERS THAN THE NUMBER OF CLUSTERS. However, I think it is difficult to reduce the number of parameters to be less than the number of clusters and I am not very interested in the model at second level. The other way is to use TYPE = COMPLEX to consider the dependence of the data with each cluster when estimating the parameters at the first level. Rather than using the composite scores, I specified both a measurement model and a structural model. The model has a good fit, but I got similar warming information as obtained in the first analysis. Can I trust the result from the analysis in the two ways, especially the second? 

Li Lin posted on Monday, December 05, 2011  12:01 pm



Hi I'm running a twolevel SEM model with dichotomous outcomes. I would like to get the BLUP for u. For example, a blup is E(u) = GZ'V(1)(y  Xb). How can I get the BLUP in Mplus? Does Mplus give the variance components? 


Luo: You have nonindependence of observations at the individual level. Only at the cluster level do you have independence of observations. The impact of having more parameters than clusters has not been well studied but this may affect your results. The only way to know the impact is to do a Monte Carlo study similar to your own study and see the impact on parameter estimates, standard errors and fit statistics. 


Li: Mplus does not provide BLUP. 

Luo Wenshu posted on Monday, December 05, 2011  7:32 pm



Hi Linda, Thank you for your reply. My data actually have three levels (students, classes and schools). In Mplus, if I run SEM with type = complex, I can only treat the data as having two levels (classes as the second level units).Is it OK to ignore the school level for this analysis? By setting type = complex, will the results of SEM analysis be the same if the data can be treated with three levels? Indeed,I found that the level 3 variance + level 2 variance in threelevel variance decomposition analysis = level 2 variance in twolevel variance decomposition analysis. 

Luo Wenshu posted on Tuesday, December 06, 2011  1:19 am



Hi Linda, When we set type=complex to run SEM, we can obtain a latent correlation matrix if we have tech4 following the OUTPUT command. Is this correlation matrix the pooled within groups latent correlation matrix or a correlation matrix based on the disaggregated data? Thank you very much. 


It sounds like the school variance is small so it could perhaps be ignored. If you don't want to ignore it, you can use TYPE=COMPLEX TWOLEVEL. See the introduction to Chapter 9 and pages 500501 in the user's guide. TECH4 is not the pooledwithin matrix. See the SAMPLE option of the SAVEDATA command for pooledwithin. 

Luo Wenshu posted on Tuesday, December 13, 2011  10:37 pm



Hi Linda, I am testing a complex mediation model with multiple independent variables, multiple mediators, and multiple outcomes. I can obtain the indirect effects and their signficance test in Mplus. I found in Mplus output the size of the indirect effect is the product of the path coefficent from X to M (a) and from M to Y (b), and the standard error can be obtained by using Sobel's formula. Could you please let me know how the significance test is conducted? Is it based on the ratio of ab/SE assuming normal distribution? From MacKinnon's articles, the product usually does not follow a normal distribution. When the sample size is large, does the distribution approach normality? I know we can use Bootstrap method to test signficance. However I use TYPE = COMPLEX and Bootstrap cannot be run for this type of analysis. 


Note that we use the Delta method standard errors. There is a FAQ on the website that discusses the difference. Yes, when the sample size is large, the distribution does approach normality. Indirect effects are generally not that nonnormal. 


Hi Linda (or anyone else answering here) I have relatively complex, longitudinal data with students clustered in classrooms. Repeatedly I find effects (with low pvalues) if I  do a single level analysis  or use a sandwich estimator with type = complex But modelling the longitudinal model as twolevel inflates pvalues (or gives wide CIs with Bayesian). Intraclass correlations vary from quite moderate (e.g. .01) to relatively high (e.g. .05 or higher), N is anywhere between 400 and 1400. I am for the time being not so interested in the Between level, but think I need to account for the interdependence of observations. Trouble is, COMPLEX and TWOLEVEL give me very different conclusions for the part I am interested in. Am I correct in believing that simulation studies indicate TWOLEVEL is more reliable than COMPLEX? A yes to this question is unfortunate as far as my analyses are concerned... I hoped you might be able to comment on this. Best, Chris 


A growth model is what is called a disaggregated model. You should use TWOLEVEL not COMPLEX for disaggregated models. 

babs posted on Monday, April 23, 2012  6:46 am



Hello, I am new to Mplus, so please forgive me my beginner questions. I am considering the following situation: 538 customers are nested with 195 sales representatives who are nested within 12 companies. As the model type I chose "twolevel complex" however, I am not sure whether I need a random slope in my case. My model looks like this so far: cluster=Company SalesREP; analysis: type=twolevel complex; model: %within% Cw by y1y2; !Customer Loyalty %between% Ab by x1x4;! salesREP'CustomerOrientation Bb by z1z4; ! salesREP' Job Satisfaction Cb by y1y2; !CustomerLoyalty Cb on Ab Bb; But I also would like to include an effect "Cw on Ab Bb" how can I do this? And how would the syntax look like in this case? I am not sure how to transfer the user's guide examples for random slopes to my case. Furthermore, is the command cluster=company salesRep suitable if I want to take into account the 3rd level (companies)? Thank you so much for your help! 


Please note that 12 companies are not enough for COMPLEX or TWOLEVEL. A minimum of 3050 is recommended. Instead of using COMPLEX, include 11 dummy variables in the analysis. You can't include Cw ON Ab Bb. The most you can do is create a customer loyalty factor using the between part of y1 and y2 as you have done. 


Hello, I have a similar setting as "Luo Wenshu posted on Monday, December 05, 2011  12:22 am". I am using Type=Complex and get the same error information, as I have more parameters than clusters (16 clusters), but I am not able to reduce the parameters. I just want to control for the second level as my estimated intraclass correlations suggest that I have nested data, but I am actually just interested in the level 1 structure. Linda refers to use a Monte Carlo study in order to see the impact on the parameter estimates, standard errors and fit statistics. Can you please specify what I would have to do? Thank you for your help! 


You can look at examples 12.6 and 12.7 in the UG. Typically, you don't have to worry about this. Note, however, that 16 clusters is a bit too small for type=complex standard errors to be well estimated. At least 20 is the rule of thumb. You can also try Bayes where a smaller number of clusters can be handled, although type=complex is not available with Bayes but instead you would have to do twolevel analysis. 


Dear Prof. Muthen, I wonder what the exact difference is between the Type = Complex and Type = TWOLEVEL command when trying to predict timelagged effects of x on y. If you have a twolevel structured data sample (i.e., days of measurement nested in people), should you get the same output when using the ‘Type = Complex’ command… [VARIABLE: NAMES = y_t x_t y_tmin1 x_tmin1 id; CLUSTER = id; ANALYSIS: Type = COMPLEX; MODEL: y on y_tmin1 x_tmin1; x on x_tmin1;] …compared to the ‘Type = TWOLEVEL’ command when person mean centering the independent variables? [VARIABLE: NAMES = y_t x_t y_pmc_tmin1 x_pmc_tmin1 id; CLUSTER = id; WITHIN ARE y_t x_t y_pmc_tmin1 x_pmc_tmin1 ANALYSIS: Type = TWOLEVEL; ESTIMATOR = MLR; MODEL: %within% y on y_pmc_tmin1 x_pmc_tmin1; x on x_pmc_tmin1; %between%] Many thanks! 


See Slides 2024 of the Topic 7 course handout on the website. See also the introduction to Chapter 9 of the user's guide. You can also see the difference by doing both analyses and comparing them. 


Dear prof. Muthen, The slides suggest you should end up with a similar solution. However, mine greatly differs when using Type = COMPLEX versus Type = TWOLEVEL. The latter produces different (and nonsignificant) estimates compared to the former. May this be caused by person mean centering the data? (for instance, does the Type = Complex command operates by using random intercepts which I corrected by personmean centering the data when using the Type = TWOLEVEL command?) Many thanks! 


Please send the output and your license number to support@statmodel.com. 


Drs. Muthen, I am conducting multiplegroup invariance tests in Mplus using the "model = CONFIGURAL METRIC SCALAR" feature with orderedcategorical observed items. I read that this multiple group analysis can be combined with a clustering variable (classroom ID) using the Type=Complex option to make adjustments to the chisquare. I read that the Type=Complex produces the Satorra–Bentler chisquare with MLM but my estimator in this model is WLSMV. What chisquare adjustments are being used with Type=Complex with WLSMV in Mplus? I can not seem to readily find an answer, so I would very much appreciate any references you can provide. Thank you, Benjamin Brumley 


Look for DIFF test in the UG. 


Dr. Muthen, Thank you so much for your response. I have looked at the User's Guide with reference on DIFF test. My followup question is not so much on the DIFF test between the Configural Metric Scalar. Rather, when I add the Type = Complex option to the model the ChiSquare value, for example the Configural model, is influenced and as a result, the fit indices(RMSEA, CFI, TLI) are influenced. Is the new ChiSquare being estimated via SattoraBentler or YuanBentler or is there a different formulation of this chisquare with estimator WLSMV? MODEL FIT INFORMATION FOR THE CONFIGURAL MODEL ChiSquare Test of Model Fit Value 8764.717* RMSEA 0.118 CFI 0.995 TLI 0.994 MODEL FIT INFORMATION FOR THE CONFIGURAL MODEL (*NOTE ADDITIONAL TYPE=COMPLEX ADDED) ChiSquare Test of Model Fit Value 3985.179* RMSEA 0.079 CFI 0.993 TLI 0.991 


Dr. Muthen, When I add Type = Complex option to the factor model with estimator WLSMV, is the new ChiSquare being estimated via SattoraBentler or YuanBentler or is there a different formulation of this adjusted chisquare with estimator WLSMV? Thank you very much, Benjamin Brumley 


It's related but somewhat different. See the paper on our website: Muthén, B., du Toit, S.H.C., & Spisic, D. (1997). Robust inference using weighted least squares and quadratic estimating equations in latent variable modeling with categorical and continuous outcomes. Unpublished technical report. download paper contact first author show abstract 

ZHANG Liang posted on Thursday, October 12, 2017  6:31 am



Dr. Muthen, We did a crosslagged analysis to examine the longitudinal reciprocal relations between aggression and academic achievement among students. Both aggression and achievement were measured yearly for four consecutive years. At each of the 4 years, the aggression of students in one classroom were rated by one same teacher. Thus, one reviewer recommended us to take into account the hierarchical nature of our data (participants were nested in classes), using TYPE = COMPLEX. However, the participants were at elementary schools at year 1 and year 2, and they transited into middle schools thereafter, were assigned into new classes at year 3 and year 4. As such, we cannot predefine a unified multilevel structure through the 4 years using CLUSTER. If so, is it still possible to use TPYE = COMPLEX here? And, if there are alternative ways to address this problem? Best, Liang 


This is a case of multiple membership. This is not available in Mplus in the general case, but for how to do this in Mplus in a simple case, see slides 5760 of V7Part3 our Topic 10 short course material at http://www.statmodel.com/course_materials.shtml 

mdehne posted on Thursday, May 28, 2020  3:24 am



Dear Mplus Support: I want to test measurement invariance between student and teacher ratings in a multigroup framework and use type = complex option together with MLRestimation. This procedure I used for gender, grade level, and different subjects to account for nonindependence of observations among my students. I am quite unsure how to account for nonindependence of observations correctly in the multigroup framework if nesting information is only available for one group since my students are nested within classes. For my teacher ratings I could use the same information, though, to my opinion, it is not the best way as each teacher would equal one cluster. If I code all teacher cluster information as missing values, Mplus issues a warning that the observation size for the teacher group is zero. On the other hand, I think it might be the correct way to account for nonindependence in one group when at the same time one person in the other group equals one cluster. Maybe this is trivial but I could not find the computation for standard errors if I only use type = complex. Thank you very much in advance – your help is as always appreciated. 


I think this question is suited for SEMNET. 

Back to top 