BookmarkSubscribeRSS Feed
brs2012
Calcite | Level 5

Hi,

I am running multivariate multilevel growth model on SAS 9.3 (x64bit) with two random components (one for intercept and one for slope). I have two dependent variables (DV). I have approximately 6000 subjects and 80000 rows or 40000 for each DV.  I used the following codes in which med is the dummy for two DVs:

proc mixed data= mult  covtest asycorr noclprint;

ods output solutionF=Fixed7 covparms=cov7

   tests3=test3_7 fitstatistics=fitstat7  gcorr=gcor7;

class enrolid med ;

model adh = med med*qtr med*age /noint s;

random med med*qtr /type=un sub=enrolid g gcorr;

repeated /type=vc group=med subject=enrolid;

run;


It computes when Random intercept model is run (i.e., if 'med*qtr' is dropped from the model and random statements). But, SAS can NOT run it as growth model and reports "integer overflow...2429.72M bytes of memory cannot be allocated" problem although I have 4 GB RAM. I tried to allot as much memory as possible but it did not work out. Please suggest any solutions or share if you see any issues.

5 REPLIES 5
SteveDenham
Jade | Level 19

If enrolid is a numeric variable, then try sorting the dataset by enrolid, and eliminating enrolid from the class statement.  If enrolid is alphanumeric, then create a nurmeric variable to use in its place.  I cannot gurantee that this will solve the problem, but it should help.

Other questions that having the answer to may help solve this: What does the variable 'qtr' represent?  Is it a successive time variable?  Since this is in proc mixed, the Kronecker product variance structures are available.  What happens (especially to the R part of the Z matrix) if you shift to:

repeated med qtr/type=un@cs subject=enrolid;

This structure is presented in the documentation for the REPEATED statement, with an example where the responses are height and weight (Var), which looks equivalent to your 'med.'

I hope this helps some.

Steve Denham

TomKari
Onyx | Level 15

I don't know if this applies to your problem, but I have seen cases with other SAS procs where they internally use signed integer for limits, so they can't assign more than 2**31 (2,147,483,648) of something. I'm not aware of any workaround for this problem.

Tom

brs2012
Calcite | Level 5

Thanks a lot guys!!

@ Steve, I took enrolid off from the class statement and replaced with a numeric one. But, it did not help.

Surprisingly, it  fails to use all of 4 GB to run when SAS default ddfm is used on the model statement. It runs successfully only when I reduce the number of subjects to 4500 (approx.) with the default containment method.

Anyway, I could finally run the model with some alternative 'ddfm= ' specifications (e.g., residual, KR, etc.) on the model statement.

Friends, thanks again for your time!!

wchang
Calcite | Level 5

Hello, your thread is the only one I found that mentions running a multivariate multilevel model. Can you direct me to any resources on how to use SAS to run this model? Thank you for your time!

SAS Innovate 2025: Register Now

Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

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