BookmarkSubscribeRSS Feed
AGabriela
Calcite | Level 5

Hi there - The following code works but only with a very small sample size.  My dataset is big and I get an ERROR message when I submit the code using the entire dataset.  I have never used GLIMMIX, I'm not familiar with it.  I wonder if this model can be run using MIXED instead?  Would that help? Or are there any other ways to run this code more efficiently?

 

proc glimmix data=xx;

class studyid;

 effect spl = spline(quarter / details naturalcubic basis=tpf(noint)knotmethod=percentiles(5));

   model avgdose = spl /s ddfm=kr;

   random int spl /subject = studyid type=vc solution;  /*try vc instead of un*/

 

      ods output parameterestimates=sf(keep=effect estimate 

                                 rename=(estimate=overall));

      ods output solutionr=sr(keep=effect subject estimate

                                 rename=(estimate=ssdev));

run;

 

Here is the error I get:

ERROR: Model is too large to be fit by PROC GLIMMIX in a

       reasonable amount of time on this system. Consider

       changing your model.

4 REPLIES 4
SteveDenham
Jade | Level 19

Three questions: How much memory is available to you,  how many quarters are you trying to fit and how many cases do you have (studyid's)?  I suspect that your code is generating a lot of knots, and so it ends up with a too many parameters in the optimization compared to the available memory.

 

SteveDenham

 

 

AGabriela
Calcite | Level 5

Thank you for your reply.  Here are the answers:

1) On a regular basis just 32gb, but the IT department doubled that during the weekend.  Unfortunately I didn't see a big improvement. 

2) Nine quarters.  I've tried 3, 4 or 5 knots.  As expected, the smaller the number of knots the greater the chance the model will run.

3) If the dataset has 1k people (studyids) or less it runs fine.  But unfortunately I have many more people (35k+) on the entire dataset.

 

Thanks again,

Gabriela 

Rick_SAS
SAS Super FREQ

Here's a suggestion: First fit a simple model that uses the main effects of QUARTER.

model avgdose = quarter /s ddfm=kr;

 

If the simple model converges and gives reasonable answers that you understand, then try the more complicated model that incorporates spline effects for QUARTER.

AGabriela
Calcite | Level 5

Thanks for your reply.  That's always a good approach.  I have done that, though.

Thanks again.

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

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
  • 1712 views
  • 0 likes
  • 3 in conversation