BookmarkSubscribeRSS Feed
☑ This topic is solved. Need further help from the community? Please sign in and ask a new question.
desireatem
Pyrite | Level 9

Hello, I am fitting the glimmix procedure below but didn't get an output because the data is too big:

 

Proc glimmix data=female method=quad;
class age(ref='14 years or younger')grade(ref='9th grade') race4(ref='White, NH') Region1(ref='South');
model TEAMS_NO(ref='False')=year age grade race4 Region1 / ODDSRATIO SOLUTION DIST=BINARY;
RANDOM Intercept / TYPE=VC Subject=RECORD;
random intercept / subject=record weight=weight;
Title 'school predicting ';
format YEAR user. TEAMS_MU TRUEFALS. TEAMS_NO TRUEFALS. SEX SEX. age age. grade grade. race4 race. Region1 region.;
run;

 

 

 

496 Proc glimmix data=female method=quad;
497 class age(ref='14 years or younger')grade(ref='9th grade') race4(ref='White, NH')
497! Region1(ref='South');
498 model TEAMS_NO(ref='False')=year age grade race4 Region1 / ODDSRATIO SOLUTION DIST=BINARY;
499 RANDOM Intercept / TYPE=VC Subject=RECORD;
500 random intercept / subject=record weight=weight;
501 Title 'school predicting ';
502 format YEAR user. TEAMS_MU TRUEFALS. TEAMS_NO TRUEFALS. SEX SEX. age age. grade grade. race4
502! race. Region1 region.;
503 run;

 


NOTE: Some observations are not used in the analysis because of: missing fixed effects (n=11697).
NOTE: The GLIMMIX procedure is modeling the probability that TEAMS_NO='True'.
ERROR: Model is too large to be fit by PROC GLIMMIX in a reasonable amount of time on this
system. Consider changing your model.
NOTE: The SAS System stopped processing this step because of errors.
NOTE: PROCEDURE GLIMMIX used (Total process time):
real time 2.43 seconds
cpu time 2.43 seconds

 

1 ACCEPTED SOLUTION

Accepted Solutions
jiltao
SAS Super FREQ

You need to increase the memsize for your SAS sessions. Here is how --

1) Right click on the notepad App and choose run as admin.

2) use file open in notepad to get to C:\Program Files\SASHome\SASFoundation\9.4\nls\en\sasv9.cfg

3) Increase memsize by modifying the following statement in the file to::

-memsize=8G

(or any other value that is within your computer capacity)

4) Save and exit.

 

When you re run your program, make sure that 

1) your data is sorted by RECORD

2) use one RANDOM statement instead of two RANDOM statements (your two RANDOM statements are almost the same).

3) add ddfm=residual option in your MODEL statement.

Please let us know how things go.

Thanks,

Jill

 

View solution in original post

6 REPLIES 6
awesome_opossum
Obsidian | Level 7

Unfortunately, it's a notorious problem with glimmix that it is a resource hog.  Even with relatively small samples, it will not be able to run unless it is hosted on a supercomputer. 

 

Barring that, your best option might be to run the model on multiple, sufficiently small samples, and hope to observe consistency.  Of course, that probably wouldn't cut it for a peer-reviewed report, but may be useful for decision-making purposes based on the output. 

jiltao
SAS Super FREQ

First, what is the memsize? If you run the following program the log will tell you that --

proc options option=memsize value;

run;

If it is the default 2GB then you need to increase the memsize.

Secondly, you need to make sure your data is sorted by RECORD; then add ddfm=residual option in the MODEL statement.

Hope this helps,

Jill

desireatem
Pyrite | Level 9

THank you, I ran  proc options option=memsize value; run;  and below is the log file

 

 

Option Value Information For SAS Option MEMSIZE
Value: 2147483648
Scope: SAS Session
How option value set: Config File
Config file name:
C:\Program Files\SASHome\SASFoundation\9.4\nls\en\sasv9.cfg

NOTE: PROCEDURE OPTIONS used (Total process time):
real time 0.00 seconds
cpu time 0.00 seconds

 

jiltao
SAS Super FREQ

You need to increase the memsize for your SAS sessions. Here is how --

1) Right click on the notepad App and choose run as admin.

2) use file open in notepad to get to C:\Program Files\SASHome\SASFoundation\9.4\nls\en\sasv9.cfg

3) Increase memsize by modifying the following statement in the file to::

-memsize=8G

(or any other value that is within your computer capacity)

4) Save and exit.

 

When you re run your program, make sure that 

1) your data is sorted by RECORD

2) use one RANDOM statement instead of two RANDOM statements (your two RANDOM statements are almost the same).

3) add ddfm=residual option in your MODEL statement.

Please let us know how things go.

Thanks,

Jill

 

svh
Lapis Lazuli | Level 10 svh
Lapis Lazuli | Level 10
I don't see "record" in the CLASS statement. Have you tried running the model with it included? Also, is there a way you can simplify to one RANDOM statement since they are both specifying a random intercept for that variable.
SteveDenham
Jade | Level 19

In addition to the great responses from @jiltao and @svh , you might also have luck if you changed from adaptive quadrature (method=quad) to a REML-pseudolikelihood method (method=RSPL, or for marginal effects method=RMPL).  This suggestion is based on the paper by Stroup and Claassen (2020) https://link.springer.com/article/10.1007/s13253-020-00402-6 (Paywall). or https://ibook.pub/pseudo-likelihood-or-quadrature-what-we-thought-we-knew-what-we-think-we-know-and-... (pdf, but you have to wade through a splash page loaded with links).

 

Also, when you go to a single RANDOM, be sure you use the one with the WEIGHTS option if this is based on survey data.

 

SteveDenham

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
  • 6 replies
  • 858 views
  • 1 like
  • 5 in conversation