%macro roc(prdlist=,colorlist=,outfile=); %let i=1; %let prd=%scan(&prdlist,&i,|); %do %until(&prd= ); proc logistic data=crab; class color(ref='5') spine(ref='3') /param=ref; model bisat = &prd /outroc=rocdata&i; ods output Association=out&i FitStatistics=fit&i; run; data rocdata&i; set rocdata&i; Model=&i; run; data out&i(keep=model area); set out&i; model=&i; area=cvalue2; if label2="c"; run; data fit&i(keep=model aic); set fit&i; model=&i; aic=interceptandcovariates; if criterion="AIC"; run; %if &i=1 %then %do; data rocdata; set rocdata&i; run; data areadata; set out&i; run; data fit; set fit&i; run; %end; %else %do; data rocdata; set rocdata rocdata&i; run; data areadata; set areadata out&i; run; data fit; set fit fit&i; run; %end; %let i=%eval(&i+1); %let prd=%scan(&prdlist,&i,|); %end; data results; merge areadata fit; by model; run; proc export data=results outfile= "&outfile.results..xls" dbms=excel2000 replace; run; %let i=1; %let color=%scan(&colorlist,&i,|); %do %until(&color= ); symbol&i c=&color w=3 v=none i=join l=&i; %let i=%eval(&i+1); %let color=%scan(&colorlist,&i,|); %end; proc gplot data=rocdata; plot _sensit_*_1mspec_=model/ ctext=black caxis=black vaxis=0 to 1 by 0.1; run; %mend; %roc(prdlist=color spine width|color spine weight|color width|spine width|color|spine|, colorlist=black|blue|green|yellow|red|brawn, outfile=D:\My Documents\My SAS Files\);