I would like to test for interactions between variable A and a set of variables (B1-B10).
In the program below, I create the interaction term (A*B) in the data step, then use the interaction term in the proc logistic step.
Could someone please suggest a macro that would help me test all ten interactions? Thank you.
data new;
set have;
int=A*B;
run;
proc logistic data=new;
model event= A B int;
run;
I've tried this:
data new;
set have;
x='B1';
call symput('var',x);
int=A*&var ;
run;
proc logisitc data=new;
model event = &var A int;
run;
However, I seem to get different results if I run the same program twice.
This tutorial may be helpful:
http://www.ats.ucla.edu/stat/sas/seminars/sas_macros_introduction/
Assuming that LOGISTIC has no options to simplify the task, you can create the interactions without using macros:
data want;
set have;
array original {10} B1-B10;
array inters {10} inter_1 - inter_10;
do _k_=1 to 10;
inters{_k_} = A * original{_k_};
end;
run;
proc logistic data=want;
model event = A B1-B10 inter_1 - inter_10;
run;
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
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.