how to use macro to run/test multiple models?

Reply
Occasional Contributor
Posts: 14

how to use macro to run/test multiple models?

I'm looking for a way using macros to deal with a bunch of mixed models...the task is very similar to selection in linear regression:

the first model is: score = var1,

code is like that

PROC MIXED data=model METHOD=ML COVTEST;
  CLASS group;
  MODEL score = var1/SOLUTION;
  RANDOM INTERCEPT /SUB=ID TYPE=UN G;
run;

then it's score = var1 var2, then score = var1 var2 var3... I have up to 7 variables in all, and the criteria is log rank test.

 

Thanks!

 

 

 

 

 

 

Trusted Advisor
Posts: 1,554

Re: how to use macro to run/test multiple models?

Posted in reply to joseph626

Try next code:

 

%macro run_model(modl , vars=v1 v2 v3 v4 ...  );  /* define as many as need variables */

      %let n = %sysfunc(countw(&vars));

      %do i=1 %to &n;

              %let pos=%sysfunc(findw(&vars, %scan(&vars,&n)));

              %let len = %eval(&pos + %length(%scan(&vars,&n));

               PROC MIXED data=&modl METHOD=ML COVTEST;

             CLASS group;

             MODEL score = %substr(&vars,1,&len)/SOLUTION;

              RANDOM INTERCEPT /SUB=ID TYPE=UN G;

        run;

       %end;

%mend run_model;

%run_model(model,vars=var1 var2 var3);

Ask a Question
Discussion stats
  • 1 reply
  • 132 views
  • 0 likes
  • 2 in conversation