BookmarkSubscribeRSS Feed
JHSAS
Calcite | Level 5

I'm working in PROC GLIMMIX (SAS 9.4) and have a large sample. When I try to model my 3 random effects I get this error message:

 

"ERROR: Model is too large to be fit by PROC GLIMMIX in a reasonable amount of time on this system.
Consider changing your model."

 

For this statement below "ods exclude solutionr;" - is there a way to supress the output for just subject but not var1 and var2? other ideas?

 

Example syntax:

proc glimmix data=sample noclprint;
class subject var1 var2;
model outcome (event=last) = age sex/ solution CL
dist = binary;
random intercept/ sub=subject solution;
random intercept/ sub=var1 solution;
random intercept/ sub=var2 solution;
covtest GLM/ WALD;
ods exclude solutionr;
run;

4 REPLIES 4
Ksharp
Super User

No. It has nothing to do with "ods exclude solutionr;" .
Your Design Matrix (special Z matrix from random effect) is too big for your model or PC memory .
You could shrink your model random effect
or try DDFM=BW option.
model outcome (event=last) = age sex/ solution CL DDFM=bw dist = binary;

Also calling @SteveDenham @StatDave @lvm

StatsMan
SAS Super FREQ

With three non-nested random effects, your model falls into a class of models (cross-classified models) that can be very time-intensive and memory-intensive to fit. Knowing a little more about the data structure and number of levels to your 3 random effects will help the community understand your problem better. If you have a large number of levels to any of these effects, sampling observations from those levels might help. You can run repeated samples to build up a distribution for your random effect variances. 

jiltao
SAS Super FREQ

cross classified models do take a lot of resources. Is this really a cross-classified model? Or can it be written as a nested model? You might want to take a closer look at your data, especially how var1 and var2 are releated to subject, to answer this question.

It is also possible that your memsize is set at the default 2GB, which is not nearly enough. You can run the following code and find out your memsize:

proc options option=memsize value;

run;

if it is 2GB, you can edit the sasv9.cfg file to increase the memsize.

Hope this helps,

Jill

JHSAS
Calcite | Level 5

Thank you for all this feedback! let me review this carefully and bounce it off the team to see what we can do.

sas-innovate-2024.png

Available on demand!

Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.

 

Register now!

What is ANOVA?

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.

Discussion stats
  • 4 replies
  • 381 views
  • 5 likes
  • 4 in conversation