Cross-classified multilevel model PreviousNext
Mplus Discussion > Multilevel Data/Complex Sample >
 patrick sturgis posted on Monday, August 20, 2018 - 9:26 am
Am I correct in thinking that for example 9.25, the model can only manage 2 levels, the cross-classified level and the individual level? e.g. pupils nested within the cross-classification of teachers and class-rooms. You would not be able to include an additional cross-classified level e.g. teachers and class-rooms nested within cross-classification of schools and neighborhoods?
 Tihomir Asparouhov posted on Monday, August 20, 2018 - 12:47 pm
Yes that is correct. Currently there are two options. One would be to use a three-level run to impute the between level effects and then run the crossed level via two-level 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.
 patrick sturgis posted on Friday, September 07, 2018 - 10:33 am
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.
 Linda K. Muthen posted on Friday, September 07, 2018 - 1:42 pm
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 three-level run to impute the between level effects and then run the crossed level via two-level 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 cross-classification 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
 Tihomir Asparouhov posted on Tuesday, December 11, 2018 - 12:04 pm
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 two-level model and the alternate clustering.

If you want to stay with Mplus you can. Look at the end of the three-level 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: y1-y31 y;
usevar y;
define: y=y1-y2-y17;
savedata: file=imp1.dat;

To get the second imputed data set you would use
define: y=y1-y3-y18;

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.
 Tihomir Asparouhov posted on Tuesday, December 11, 2018 - 12:06 pm
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

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 cross-classification.

Syntax below



!names omitted to save space
tscores are ageT1 ageT2 ageT3;
classes =c(2);
cluster = level2a level2b; !from ex 9.24
within = x1-x6;
between = (level2a)schooltype (level2b)wave;
type = crossclassified mixture random;
estimator = Bayes;
processors = 2;
biterations =(2000);

i1 s1| x1 x2 x3 AT ageT1 ageT2 ageT3;
i2 s2| x4 x5 x6 AT ageT1 ageT2 ageT3;
i1* s1*;
i2* s2*;
i1* s1*;
i2* s2*;
x1* x2* x3*;
x4* x5* x6*;
i1* s1*;
i2* s2*;
x1* x2* x3*;
x4* x5* x6*;
%between level 2a%
%between level 2b%
 Bengt O. Muthen posted on Wednesday, October 30, 2019 - 1:09 pm
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 cross-classified classrooms over 3 time points.

I have decided to simply remove cluster-classroom level variance. That is, to calculate (Yji - Yj cluster-classroom mean), for each time point.

I wanted to ask if and how p-values of individual betas in MPLUS might need to be adjusted. Some argue that removal of cluster means distorts p-values. It seems the df should be the same as if all classroom-clusters had been added in the model as dummy cluster covariates (refs below).

Thank you for your time!

 Tihomir Asparouhov posted on Tuesday, November 05, 2019 - 6:31 pm
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 cross-classified. You can estimate that model with ML and you don't need to do the centering I think.
Back to top
Add Your Message Here
Username: Posting Information:
This is a private posting area. Only registered users and moderators may post messages here.
Options: Enable HTML code in message
Automatically activate URLs in message