Two-level model with cross-classified... PreviousNext
Mplus Discussion > Multilevel Data/Complex Sample >
 Shige posted on Saturday, August 20, 2005 - 12:44 pm
Dear Linda and Bengt,

Is it possible to estimate two-level model with cross-classified random effects? For example, in educational research, kids are nested within primary school and secondary school, but primary and secondary schools are not nested within each other but cross-classified. Some references on this topic can be found in Leyland and Goldstein (2001), chapter 7, or Raudenbush and Bryk (2002), chapter 12.



Leyland, A. H., and Harvey Goldstein. 2001. Multilevel Modelling of Health Statistics. Chichester ; New York: Wiley.

Raudenbush, Stephen W., and Anthony S. Bryk. 2002. Hierarchical Linear Models: Applications and Data Analysis Methods. Thousand Oaks: Sage Publications.
 bmuthen posted on Saturday, August 20, 2005 - 2:29 pm
Crossed random effects are not implemented in the current Mplus version, so unless one can think of some latent variable trick, this cannot be done yet.
 Michael J. Zyphur posted on Saturday, August 20, 2005 - 3:17 pm
If you don't have too many categories and have a lot of data, you could conduct a multigroup analysis and then constrain parameters across groups to test for the effects of the classifications.
 Jonathan posted on Sunday, July 06, 2014 - 9:23 am

It looks like it's possible to do CCREMs in Mplus now, but I'm having some difficulty replicating a particular model.

I'm looking to run a cross-classified model which has no predictors but has two random intercepts. So using the terminology of the Mplus manual and the example Michael posted above:
-->There would be no "within" model
-->The only things influencing y would be level2a (primary school) and level2b (secondary school), which would vary randomly

Is this possible in the new MPlus framework? If so, how would I code it?
 Linda K. Muthen posted on Sunday, July 06, 2014 - 9:58 am
If you have no covariates, you would not have random intercepts. You would have random means.

%BETWEEN level2a%
%BETWEEN level2b%
 Jonathan posted on Sunday, July 06, 2014 - 10:05 am
Thanks! One other question--if I wanted to get the random means for each group, is there a particular output I would request or operation I would perform?

Thanks in advance for your help.
 Linda K. Muthen posted on Sunday, July 06, 2014 - 10:30 am
 Tao Yang posted on Friday, June 05, 2015 - 3:36 pm
Hello, my data had encounter nested within day nested within participant while encounter was also nested within patient. So it is three level plus a cross-classified cluster of patient. Is this type of data structure implemented in Mplus at this time? If I understand correctly, Mplus can handle level-1 variables nested within the cross-classification of level-2a and level-2b. Not sure how to handle three-level with a crossed cluster.

 Bengt O. Muthen posted on Friday, June 05, 2015 - 4:00 pm
No yet.
 Edward Lemay posted on Tuesday, October 13, 2015 - 9:54 am
Hi. I have five waves of assessments taken on both members of romantic couples. Wave and person should be modeled as crossed and nested within couples. Can MPlus run this type of model as a multilevel model?
 Bengt O. Muthen posted on Wednesday, October 14, 2015 - 2:21 pm
Mplus cannot do cross-classified analysis within a higher nesting. But isn't wave nested within person?
 Edward Lemay posted on Thursday, October 15, 2015 - 7:38 am
Thank you for your response. Wave isn't nested within person because both partners complete the assessments at the same time. So person and wave are completely crossed, and person A's response at wave 1 is likely to be correlated with Person B's response at wave 1. So I was hoping to be able to model person and wave as crossed, and nested within dyad. But I think I can handle this in a multivariate way in which I treat the responses from the two partners as different variables on the same level.
 Bengt O. Muthen posted on Thursday, October 15, 2015 - 3:32 pm
That's what I would suggest - what we call a doubly-wide approach in our teaching. Wide wrt time and wide wrt partners. So for one outcome at T time points, you would analyze a single-level model with 2*T variables.
 Seamus Harvey posted on Wednesday, March 14, 2018 - 2:54 pm
Hello. My data has a number of levels that I'm trying to account for. At the first 'between-level', each participant is nested within a team. At the second 'between-level', each team appears in at least two clusters of rater. Because teams are not nested within raters, is it ok to use 'type=crossclasified' for the analysis, despite the fact that participants are nested within team. In addition, there is a third 'between-level', in which each rater is nested within a club. I presume MPlus won't be able to deal with this as this is four-level analysis?
 Tihomir Asparouhov posted on Wednesday, March 14, 2018 - 8:11 pm
One generally does not create a new "nesting level" unless you have more than 10 clusters at that level. For smaller number of clusters use multiple group or group specific predictors (dummy variables technique) or setup it up as a multivariate model. When there are many levels we recommend that you pick up the most important. Compute ICC for each nesting level then keep the top two levels with the biggest ICC. From your description it sounds that type=cross is needed.
 Seamus Harvey posted on Thursday, March 15, 2018 - 4:42 am
Thank you very much for your reply. I have more than 10 clusters per level, except the 'club' level, so should be ok in that regard. I was just wondering, is it suitable to use 'type=crossclassified' when the data is nested at one level but there is multi-membership at another?
 Tihomir Asparouhov posted on Thursday, March 15, 2018 - 8:44 am
Take a look at slides 57-60 for one example with multiple membership.
 Seamus Harvey posted on Thursday, March 15, 2018 - 8:48 am
Thank you.
 Tihomir Asparouhov posted on Thursday, March 15, 2018 - 8:49 am
If you can't fit the model in one step you can use multiple step estimation where plausible values are estimated for the contribution effects for the various levels (one level at a time).
 Seamus Harvey posted on Thursday, March 15, 2018 - 8:59 am
Thank you. How might multiple step estimation be specified in the syntax?
 Tihomir Asparouhov posted on Thursday, March 15, 2018 - 10:11 am
The multiple step is mostly doing it on your own and using Mplus to estimate the between part for a particular level - subtract it from the variable then proceed to the next clustering level or cross-nesting.
 Seamus Harvey posted on Thursday, March 15, 2018 - 10:30 am
Thank you for your reply. The analysis I'm completing is multiple imputation, during which the multilevel nature is taken into account. I presume the described multiple step approach isn't possible for this?
 Tihomir Asparouhov posted on Thursday, March 15, 2018 - 11:12 am
Probably it would be quite messy - but given the complexity of your situation I doubt your imputations account for that anyway and you are probably much better off relying on Mplus to deal with the missing data than using imputation that ignores the clustering.
 Seamus Harvey posted on Thursday, March 15, 2018 - 12:31 pm
Thank you very much for your advice. Unfortunately, I can't rely on Mplus to deal with missing data using FIML during analyses, as I need to manipulate the dataset further before getting to this stage (e.g., I need to calculate each player's average rating from multiple ratings provided by coaches). Apologies for the repeated questions; hopefully this is the last one. Do you reckon I would be better off (1) performing multiple imputation that takes into account the nested nature of the data at the first 'between-level' only, using 'type=twolevel', and ignoring the other higher grouping levels; or (2) performing multiple imputation that, in some way at least, addresses the nested nature of the data at the first 'between-level', and takes into account the multi-membership nature of the data at the second 'between-level', using 'type=crossclassified'?
 Seamus Harvey posted on Thursday, March 15, 2018 - 12:43 pm
Just to be clear, the clusters at the first 'between-level' appear in different clusters of the second higher 'between-level'.
 Tihomir Asparouhov posted on Thursday, March 15, 2018 - 4:08 pm
I would recommend to use ICC in your decision. In principle you can obtain the between component for each variable in each imputed data set - then average across the imputed data set to get the cluster specific contribution.
 Seamus Harvey posted on Thursday, March 15, 2018 - 4:47 pm
Thank you.
 Stacey Shipe posted on Monday, April 23, 2018 - 11:55 am
I have a 2 level dataset that I believe is cross nested. I am using administrative data from a state child welfare database where my level 1 is children, level 2 is the caregiver, and they are nested by caseworker. There are instances where a child and/or family member can have more than one caseworker. My DV is categorical as are most of my IVs. Urb and Rur are the type of county the family lives in (the reference category is Sub).

I am currently using the following syntax:
Analysis: type = twolevel;

Model: %within%
recurrence on NumKids KidGen KidAge KidEth KidRace AduGen AduAge AduEth AduRace TR_AR Q1_PA Q1_SA Medi;
recurrence on Urb Rur;

But I am getting two error messages:
One or more between-level variables have variation within a cluster for the following clusters.

One or more individual-level variables have no variation within a cluster for the following clusters.

Thank you.
 Bengt O. Muthen posted on Monday, April 23, 2018 - 4:36 pm
Try Analysis Type = Crossclassified. Hopefully that takes care of the first error message. The second one is not fatal.
 Stacey Shipe posted on Wednesday, May 23, 2018 - 5:17 pm
Unfortunately, it did not. My new error message is:
*** ERROR in VARIABLE command
Exactly two cluster variables are required for TYPE=CROSSCLASSIFIED. The number
of cluster variables required has not been reached or has been exceeded.

I suspect my syntax is not correct but I am not sure where to get the specific syntax I need.
 Bengt O. Muthen posted on Thursday, May 24, 2018 - 3:43 pm
The UG shows examples of Type=crossclassified analysis.
 Rolf Gjestad posted on Tuesday, June 18, 2019 - 1:31 pm

I am going to analyze some data sets where subjects change cluster membership (operated patients change hospital departments over several surgical procedures, treated patients change therapists, children change schools). Is it right that this is the type = crossclassified situation? Is it possible to have more than two changes in Mplus?

Best regards,
Rolf G
 Bengt O. Muthen posted on Tuesday, June 18, 2019 - 3:11 pm
No, just one change as shown in our Topic 10 video and handout.
 Rolf Gjestad posted on Tuesday, June 18, 2019 - 9:19 pm
Thank you very much Bengt
 Brittany Tokasey posted on Friday, July 10, 2020 - 7:23 pm

I have some cross classified data where participants and stimuli are the level 2 clusters. I'd like to test for mediation while also including random slopes in the model. Is that possible? I've come across example syntax for cross classified random models that don't include indirect effects, cross classified models with indirect effects but without random slopes, and two level random models with indirect effects, but not something that quite matches what I would like to do. Do you happen to know of any papers that perform a cross classified random mediation analysis?

My second question is, if this is possible to do in Mplus, can I have the same random slope modeled at both level 2a and 2b? Some playing around I've done in Mplus gives me an error saying I need to "Fix the mean parameter on either level to identify the model." "Mean parameter" is referring to the average of the random slopes. I would like each of my participants (level 2a) and my stimuli (level 2b) to have their own slope for the IV.

Thank you!
 Bengt O. Muthen posted on Sunday, July 12, 2020 - 4:39 pm
UG ex 9.38 shows input for a random slope model with Type=Crossclassified. The variation in the slope can be modeled on both level 2a and level 2b. Its mean has to be on only one of those two levels.
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