Message/Author 


Am I correct in thinking that for example 9.25, the model can only manage 2 levels, the crossclassified level and the individual level? e.g. pupils nested within the crossclassification of teachers and classrooms. You would not be able to include an additional crossclassified level e.g. teachers and classrooms nested within crossclassification of schools and neighborhoods? 


Yes that is correct. Currently there are two options. One would be to use a threelevel run to impute the between level effects and then run the crossed level via twolevel ML with type=imputation. The second option is to evaluate (again with a three level model) the effect of the two nested levels and retain the level that has bigger effect for the cross classified model. 


Thank you I have estimated the model in example 9.25. Is it possible to obtain the indirect effect? In this example there is an indirect effect of x on y2 via y1 but the output does not seem to display an estimate for the indirect effect. 


You need to specify the indirect effect in either MODEL INDIRECT or MODEL CONSTRAINT to obtain the indirect effect estimate. I don't believe MODEL INDIRECT is available with CROSSCLASSIFIED. 

Kerry Lee posted on Monday, December 10, 2018  5:51 pm



Referring to Tihomir's post on August 20, are there some sample syntax on the first option (i.e," use a threelevel run to impute the between level effects and then run the crossed level via twolevel ML with type=imputation.")? Second, if the initial imputation involves generating a H0 model using Bayes, would this cause difficulties when used in the subsequent crossclassification model? I read in a older post that "using Bayes on imputed data creates technical issues for the credibility intervals so Mplus does not allow it" (from http://www.statmodel.com/discussion/messages/22/14898.html?1534980965). 


You would add to your three level file savedata: file 1.dat; save=fs(10,100); factors = all; Some manual manipulation would then be needed (it can easily be done in excel) to subtract the 2 between levels and form the 10 new files. Those can then be analyzed as in User's Guide example 13.13 but with a twolevel model and the alternate clustering. If you want to stay with Mplus you can. Look at the end of the threelevel output. It will look like this Y F10.3 +B2_Y F10.3 B2_Y Mean F10.3 B2_Y Median F10.3 B2_Y Standard Deviation F10.3 B2_Y 2.5% Value F10.3 B2_Y 97.5% Value F10.3 +B3_Y F10.3 B3_Y Mean F10.3 B3_Y Median F10.3 B3_Y Standard Deviation F10.3 B3_Y 2.5% Value F10.3 B3_Y 97.5% Value F10.3 The plus here is key and in represents the imputed 10 columns. To get the first imputed data set you would run something like this file is 1.dat; variable: y1y31 y; usevar y; define: y=y1y2y17; savedata: file=imp1.dat; type=basic; To get the second imputed data set you would use define: y=y1y3y18; etc. In that process you would have to do all variables at the same time and include unchanged other variables you need. Keep in mind that you can alternatively impute the other level and analyze the three level with imputation. 


Regarding your second question I don't think you need to analyze the imputed data sets with Bayes. Use ML to analyze the imputed data sets. 

shaun goh posted on Tuesday, October 29, 2019  8:00 pm



Hello, Can Mplus run the following model, and are fit indices available? It consists of (i)a 2 class growth mixture of a(ii) dual latent growth model with (iii)individually varying observations in time. I am trying to understand if and how 'noise' from clusters which change across time (children shift schools across waves) can be added via crossclassification. Syntax below Best Shaun Variable: !names omitted to save space tscores are ageT1 ageT2 ageT3; classes =c(2); cluster = level2a level2b; !from ex 9.24 within = x1x6; between = (level2a)schooltype (level2b)wave; analysis: type = crossclassified mixture random; estimator = Bayes; processors = 2; biterations =(2000); model: %within% %overall% i1 s1 x1 x2 x3 AT ageT1 ageT2 ageT3; i2 s2 x4 x5 x6 AT ageT1 ageT2 ageT3; i1* s1*; i2* s2*; %c#1% i1* s1*; i2* s2*; x1* x2* x3*; x4* x5* x6*; %c#2% i1* s1*; i2* s2*; x1* x2* x3*; x4* x5* x6*; %between level 2a% schooltype; %between level 2b% wave; 


See our Short Course Topic 10 video and handout for Topic 10, Part 3, slides 57 and on. This handles only one cluster change. 

shaun goh posted on Monday, November 04, 2019  11:38 pm



Dear Bengt, Thank you for your reply and I found the Short Course Videos very helpful! My dataset is structured as individual observations nested within crossclassified classrooms over 3 time points. I have decided to simply remove clusterclassroom level variance. That is, to calculate (Yji  Yj clusterclassroom mean), for each time point. I wanted to ask if and how pvalues of individual betas in MPLUS might need to be adjusted. Some argue that removal of cluster means distorts pvalues. It seems the df should be the same as if all classroomclusters had been added in the model as dummy cluster covariates (refs below). Thank you for your time! Shaun https://journals.sagepub.com/doi/abs/10.1177/0149206319868016 https://serval.unil.ch/resource/serval:BIB_0B3C619B29D8.P002/REF 


Are the three time points the same as what you call the waves? If so this should be done as a Mixture twolevel model not crossclassified. You can estimate that model with ML and you don't need to do the centering I think. 

Back to top 