Message/Author 

ben posted on Wednesday, March 30, 2005  5:37 pm



Dear Bengt and Linda I was wondering whether Mplus had the facility to conduct a multiple membership multilevel model where level 1 units belong to 2 or more higher level units (eg. a longitudinal study of children where many children will change the neighbourhood that they live in). This type of model is described in the Mlwin handbook and by Hill and Goldstein (1997) in their article in the Journal of Educational and Behavioural Statistics. I would be interested in doing some multilevel SEM in the future but need to take into account a multiple membership multilevel model. 


No, this is not in the current version of Mplus. 


Hello, I recently bought Mplus and am a bit sorry there's no easy way to do multiple membership models. However, I think I found a way to do it (for certain types of models) and wanted some feedback regarding my method. With people nested within 15 groups, I have taken the data and, for people in more than 1 group, I have simply duplicated their data for each group they are in. So, if someone was in two groups (labeled group 1 and group 2), they now have two rows of data, which have the same values. One of the rows is linked to group 1 and another is linked to group 2. Here's my trick: For each row there is now a weighting variable which is 1/"the number of group memberships", so someone who was in two groups has their data associated with both groups, but their data only receives half the weight of someone who was only in one group (and someone in 5 groups has 5 rows of data, but each has only 1/5 the weight of someone who was only in group). Obviously, this method only works if you can safely assume that someone's data is equally associated with all the groups they are in. Does this make sense? To get at the meaning of the output, will I have to correct significance values and Ns, etc? Can anyone give me some advice on this model in general and if there's a more efficient way to do this. Thanks!! Michael J. Zyphur 


I'm not sure what a multiple membership model is so I can't say whether this makes sense. Can you explain a little more? Do you do this as a multiple group analysis? If so the observations in the groups should be independent. 

bmuthen posted on Saturday, May 07, 2005  12:02 pm



Crossclassified random effects modeling is not yet available in Mplus. Let me get back to you about your proposed approach. 


Dear Bengt & Linda, Irrespective of the cross classified and multiple membership (MM) modeling, your product is GREAT, thanks for your time with this! The big problems I see with my approach (and I don't know much about it) are 1) this method, because it's TWOLEVEL, must use the SAMPLING weight and not the FREQUENCY weight, a problem because the weight indicates more the "frequency" of the data point, rather than its sampling probability. 2) This method may not weight appropriatelly at both individuallevel and grouplevel. Also, this scheme is VERY computer intensive (I have 13,000 L1 and 4,000 L2 data points and many crosslevel effects). I cannot even use INTEGRATION = 5, and must use the MONTECARLO option to iterate. Will this pose problems for model? Thank you for your time. Michael J. Zyphur 


Sorry to repost, but will Mplus run on a multiprocessor system? Can you give any advice on what kind of computer to buy to do complex problems with Mplus (e.g., what OS, how many GB ram, etc.)? I assume you all compute very complex models there, ?what do you use?, because my models are taking a week to run on P4s. MJZ 


Re: multiprocessor, we are looking into this at the present time. We do complex models a lot but seldom with more than 4 dimensions of integration. The number of observations is also an issue as the entire data set is read at each iteration. We usually use a computer with a 2 Ghz processor and 2 Gbytes of RAM. We would never let a problem go for a week. Rather we would try to simplify it by changing the computational specifications and simplifying the way the model is specified. I wonder if you are using Version 3.12 as we made signficant speed improvements in that version. You can send your input and data to support@statmodel.com and we can see if we can make some suggestions. We are continually working on ways to speed things up. 

bmuthen posted on Monday, May 09, 2005  9:39 am



Regarding your idea for approximately handling multiple membership data, it is hard to see how well your approach would work  and it probably would vary quit a bit across situations. It would have to be evaluated by simulations. But I am not sure I would recommend that. Instead these data should be specifically modeled and Mplus can't do that yet, but perhaps in the not so distant future. In the meanwhile it might be best to acknowledge the problem but approximate membership by that of the first time point or some other influential time point (for instance, 8th grade is quite influential when it comes to US math achievement). 


I just wanted to follow up and inquire whether MPLUS version 6 can handle crossclassified or multiple membership random effects models? These models are described in Hill and Goldstein (1997). Thanks Gareth 


Not yet. 


I would like to examine how certain teaching practices in the kindergarten (clusterlevel/classroomlevel covariate) influence the development of aggression from Grades 1 to 4. I have two clustering variables: 1) one that indicates cluster membership in the kindergarten; 2) the other that indicates cluster membership in first to fourth grades. I am not sure how to set up my model in this case (having two clustering variables). Could you help me out? Thank you 


Yes, this can be done using the new Version 7 feature of Type=Crossclassified. See slides 5760 of the Part 3 handout for the Utrecht training at http://www.statmodel.com/v7workshops.shtml Note that there is also a video of this on our website. Those slides refer to a recent JEBS paper. 


I am still not sure how to set up the model. Aggression was measured in Grades 1 to 4 (cluster = klass). However, my betweenlevel predictor (laa) was measured in the kindergarten (cluster = lakood). So, I am not sure what should be specified under %between lakood%. My goal is to test whether laa predicts variance in the intercept and slope. TITLE: multilevel; DATA: FILE IS Crossclassified.dat; VARIABLE: names are Klass LAKood Sugu at LAA LAT LAC LASiil LAAgress LASots Agress0 agress1 agress2 agress3 sots0 sots1 sots2 sots3; usevariables are agress0 agress1 agress2 agress3 laa ; missing = all (99); CLUSTER IS klass lakood; BETWEEN IS (lakood) laa; Analysis: type = crossclassified ; estimator = bayes; processors = 2; MODEL: %within% iw sw  agress0@0 agress1@1 agress2@2.5 agress3@4; agress0agress3 (1); %between klass% ib sb  agress0@0 agress1@1 agress2@2.5 agress3@4; agress0agress3@0; %between lakood% WHAT WOULD BE HERE???? 


Your model is very similar to the model described on page 57 in https://www.statmodel.com/download/handouts/V7Part3.pdf MODEL: %WITHIN% fs BY agress0agress3@1 laa@1; [agress0agress3 laa]; %BETWEEN klass% iw by agress0@1 agress1@1 agress2@1 agress3@1 laa@0; sw by agress0@0 agress1@1 agress2@2.5 agress3@4 laa@0; agress0agress3@0 laa@0; [agress0agress3@0 laa@0]; %BETWEEN lakood% agress0agress3@0; laa; [agress0agress3@0 laa@0]; 


Thank you! I am still confused (I also ran the model and it did not work). "Laa" is a clusterlevel (kindergarten) variable. So, it cannot be specified at the within level. Also, shouldn't there be a command that specifies a path between "laa" and intercept and "laa" and slope? 


oh  I see. I misunderstood the meaning of laa. Try this. MODEL: %WITHIN% fs BY agress0agress3@1; [agress0agress3]; %BETWEEN klass% iw by agress0@0 agress1@1 agress2@1 agress3@1; sw by agress0@0 agress1@1 agress2@2.5 agress3@4; agress0agress3@0; [agress0agress3@0]; %BETWEEN lakood% agress0agress3@0; [agress0agress3@0]; iw2 by agress0@1 agress1@1 agress2@1 agress3@1; iw2 on laa; 


Ops ... this model is better since you want to see that the kindergarten effect decreases over time (take a careful look at the slides and the paper that is referred there). %BETWEEN lakood% agress0agress3@0; [agress0agress3@0]; iw2 by agress0@1 agress1 agress2 agress3; iw2 on laa; 


Thanks a lot. To be clear...agress0 to agress3 are not measured in the kindergarten at all (only laa is). Shouldn't the statement in %between klass% be iw by agress0@1 agress1@1 agress2@1 agress3@1; rather than iw by agress0@0 agress1@1 agress2@1 agress3@1; Also, doesn't the following statement evaluate laa effect on intercept and not on the slope? iw2 on laa; Again, thanks so much for your help. 


I see ... then I would say this model is more appropriate MODEL: %WITHIN% fs BY agress0agress3@1; [agress0agress3]; %BETWEEN klass% iw by agress0@1 agress1@1 agress2@1 agress3@1; sw by agress0@0 agress1@1 agress2@2.5 agress3@4; agress0agress3@0; [agress0agress3@0]; %BETWEEN lakood% agress0agress3@0; [agress0agress3@0]; iw2 by agress0@1 agress1 agress2 agress3; iw2 on laa; You could look for a slope effect but the interpretation might be a bit difficult. Because the loadings in the above model are not fixed the K effect on agress changes over time. Alternatively, this model would also work. %BETWEEN lakood% agress0agress3@0; [agress0agress3@0]; iw2 by agress0@1 agress1@1 agress2@1 agress3@1; sw2 by agress0@0 agress1@1 agress2@2.5 agress3@4; iw2 sw2 on laa; 


Thanks a lot! 


Hello, I was wondering what the syntax would look like if I added a latent variable to the model shown on slides 5960 of the Part 3 handout for the Utrecht training at http://www.statmodel.com/v7workshops.shtml. Specifically, I have three measures of academic ability across four time points and I have had difficultly with specifying my latent variable across the between parts of the model (i.e., my two membership clusters). Thank you! 


Instead of the observed Y variables at the different time points, you would have an academic ability factor. So you study growth of a latent variable with multiple (3) indicators. We have multiple indicator growth example(s) in the UG, which can be combined with the slide 60 input. If you have problems with this setup, please send the output for your best effort, data, and license number to support. 


Dear Mplusteam, Is it possible to combine type=cross with multigroup modeling in Mplus? For example: if students are nested in schools and neighbourhoods, and we want to test measurement invariance with respect to some schoollevel grouping variable? I am sorry asking you instead of trying it myself, but I do not have version 7 yet. Thanks in advance! 


This is not possible in Mplus. 

Julija Mell posted on Tuesday, August 16, 2016  1:59 am



Dear MPlus team, I would like to follow up on the multiple membership question. If I understand correctly from the documentation, MPlus can handle crossclassified data. From the examples I saw, that would be a case where there are two different sets of level2 clusters with each level1 unit belonging to exactly 2 clusters, one in each set (e.g. primary school, high school). In my case, multiple membership is structured a bit differently: I have a 3level dataset, level 1 being employees, level 2 being team leaders, and level 3 being executives. Employees are nested within teams/team leaders, that one is easy. The more complex situation is the relationship between team leaders and executives: Team leaders are/ can be connected to executives. Some have one connection/affiliation, some have multiple, some have none. In terms of model, what I am trying to do is to predict an outcome at the employee level by an attribute of the executives. I would set up a membership weight matrix along the lines of Browne et al. (2001, Statistical Modeling), with the idea any Executive's attribute only has an effect on the employee's outcome when an affiliation between the associated team leader and the executive exists. I am not sure, however, how to set up a model like this in MPlus and, most importantly, whether this is actually possible. I appreciate your advice on this! Kind regards, Julija 


Mplus and multiple membership is described on slides 5760 of the Part 3 handout for the Utrecht training at http://www.statmodel.com/v7workshops.shtml I am not familiar with membership weight matrix approaches. You may want to ask on Multilevelnet  perhaps someone (like Joop Hox) has done this in Mplus (or email him directly). Let us know if you find out. 

Samuli Helle posted on Wednesday, January 16, 2019  1:08 pm



Hi, I am wondering whether there are differences in syntax or how the data are structured between crossclassified and multiple memberships models in Mplus? 


Multiple membership modeling is done via crossclassified analysis in Mplus (see the end of the Topic 10 video and handout) so it would use the data structure of the latter. 


So the data needs to be in long format and Mplus can automatically tell whether my data structure is crossclassified or multiple membership? Is there a way to output a design matrix for this multiple membership structure? Thanks! 


You have to set it up as a crossclassified model. Take a look at the particular example we discuss in Part 3 http://www.statmodel.com/download/MplusDutchUsersGroup.zip 

Samuli Helle posted on Thursday, January 17, 2019  10:25 pm



Hi Tihomir, I have been reading all those resources and I get the model running. However, I doubt my model is still crossclassified as I get separate random intercepts for both the L2 clusters. I think in multiple membership model, one should have just one random intercept. At least that appears to be the case in applications with other softwares I have seen (e.g. https://www.ihrp.uic.edu/files/CrossClassMultiMemberHedeker2014.pdf). 


We need to see your output  please send to Support along with your license number. 

Back to top 