Hello,
Interesting question.
You can indeed use
PROC GLIMMIX for fitting multilevel multiple membership models to hierarchical binary data (binary outcomes).
Model specifications in PROC BGLIMM are mostly identical to those in PROC MIXED and PROC GLIMMIX.
https://go.documentation.sas.com/doc/en/pgmsascdc/9.4_3.5/statug/statug_bglimm_overview03.htm
Do you get errors with your model specification in BGLIMM?
I would think BGLIMM can handle this.
I have forwarded your question internally to a colleague that should know the answer.
Thanks,
Koen
Dear professor,
Your question : Yet I wonder if that procedure (BGLIMM) can incorporate multiple membership ?
Here's the answer from my colleague :
Yeah, if multiple membership models mean that the random effects don’t need to be nested (nested means student within classroom within school within district), then BGLIMM supports this type of model. Student can be the cluster for one RANDOM statement, and topic (English, math, science) can be for another, and the two subject= variables do not need to be nested.
Hope this helps,
Koen
Hello,
I understand , but I don't have an immediate answer ready for this.
I will reach out again to my colleague in R&D.
Stay tuned,
Koen
How would a Bayesian approach assist you (since that is what BGLIMM is for)? At this point, I do not believe BGLIMM (or PROC MCMC) supports the EFFECT statement to generate a multimember design.
SteveDenham
Thank you Steve. As Glimmix is unable to deal with thousands of random effects (often the case with social network datasets), I shifted to BGLIMM but indeed is does not handle multiple memberships.
Hello @Lorant ,
Hello @SteveDenham ,
Subject: Multiple membership random models with Proc BGLIMM
The workaround is to use the GLIMMIX procedure, which produces the design matrix (use the EFFECT statement for constructed effects), and then use the outputted design matrix in BGLIMM.
It’s the OUTDESIGN= option you want to use in GLIMMIX.
Ciao,
Koen
Hello @Lorant ,
The workaround is to use the GLIMMIX procedure, which produces the design matrix (use the EFFECT statement for constructed effects), and then use the outputted design matrix in BGLIMM.It’s the OUTDESIGN= option you want to use in GLIMMIX.
Did you have time to try out the above suggestion?
Do you have any follow-up questions?
Thanks,
Koen
Hello,
@Lorant wrote:
: how do pass that design matrix from GLIMMIX to BGLIMM what is the statement in BGLIMM ?
There is unfortunately no "indesign=" - option (like there's an "outdesign=" - option). That's a pity.
But below I give an example (2 times PROC GLIMMIX admittedly).
It will not be as simple for every model. But definitely possible!
( Not that the below example is very straightforward. I had to do quite a bit of searching. 😉 )
SAS/STAT® 15.3 User's Guide
The GLIMMIX Procedure
Example 52.16 Diallel Experiment with Multimember Random Effects
https://go.documentation.sas.com/doc/en/statug/15.3/statug_glimmix_examples21.htm
Complete code for this example :
https://go.documentation.sas.com/doc/en/statug/15.3/statug_code_gmxex16.htm
And here a PROC GLIMMIX on the design matrix that is resulting in the same model :
proc glimmix data=diallel outdesign=mat;
class block sym p m;
effect line = mm(p m);
model time = block;
random line sym p m p*m;
run;
proc print data=mat;
run;
proc glimmix data=mat;
class block;
model time = block;
random _z1-_z8 / type=toep(1);
random _z9 - _z36 / type=toep(1);
random _z37-_z44 / type=toep(1);
random _z45 - _z52 / type=toep(1);
random _z53-_z108 / type=toep(1);
run;
*** or if the fixed effects have to be from the design matrix, then use the following program;
proc glimmix data=mat;
model time = _x2;
random _z1-_z8 / type=toep(1);
random _z9 - _z36 / type=toep(1);
random _z37-_z44 / type=toep(1);
random _z45 - _z52 / type=toep(1);
random _z53-_z108 / type=toep(1);
run;
Koen
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
ANOVA, or Analysis Of Variance, is used to compare the averages or means of two or more populations to better understand how they differ. Watch this tutorial for more.
Find more tutorials on the SAS Users YouTube channel.