I probably have the cluster and the strata variables confused, so bear with me on this. You have 377 buildingirn that are nested within ~100 strata09_n variables. I assume that there are multiple records for each of the individual buildingirn's (probably individual student responses). If that is incorrect, then ignore everything from here on, and we'll try again after I get it straight. Given that my assumption is correct, then the best choice would look like: Proc glimmix data= a; *final model; class ctytype untx ow2 strata09_n buildingirn; model perfindex = lowincome racialmin untx ow2 ctytype enrollment3 / solution; weight finalweight; random intercept strata09_n / subject=buildingirn solution; lsmeans ow2/ilink cl; lsmeans untx/ilink cl; where sealprog = 0; *where sealprog = 1; run; I can't guarantee that this will get around the out of memory problem, though. So you may have to consolidate some strata (which I am going to guess are school districts, and it is vital to get some info on the variability added there). That may be difficult given your objectives. You may need to look into PROC HPMIXED, which is designed to handle data with many random effects. But now I am going to ask some questions: First, why PROC GLIMMIX rather than PROC SURVEYREG? If you truly conducted a survey, the estimates from GLIMMIX may be biased, even with the weight statement. Second, I see "ilink" options in the lsmeans statements. Generally, I don't use this unless I have specified a distribution in the model that is other than normal or lognormal (which have identity links so that the ilink estimate is identical to the estimate). Is the response variable what you would consider normal, or would another distribution be preferred? Third, I see "final model" in the comments. I hope that this is the result of looking at the interactions between the continuous variables and the class variables to find a parsimonious analysis of covariance model. Good luck with this. Steve Denham
... View more