Interpret logistic score
 
proc sql;
create table CHECK_ODS as
select a.*,
min(ClassVal0) as min_cat,
max(ClassVal0) as max_cat
from estimate_save a
where variable ne 'Intercept'
group by variable
order by variable, ClassVal0 ;
quit;


data CHECK_ODS2;
set CHECK_ODS;
if min_cat=ClassVal0   then 
PUT_VAR=compress('bodk'||variable||'='||'('||Estimate||')'||'* '||'('||Variable||'='||ClassVal0||')'||"+");
else if max_cat=ClassVal0 then 
PUT_VAR=compress('('||Estimate||')'||'* '||'('||Variable||'='||ClassVal0||')'||";");
else PUT_VAR=compress('('||Estimate||')'||'* '||'('||Variable||'='||ClassVal0||')'||"+");
run;


proc sql noprint;
select PUT_VAR
into :formula_ODS separated BY " "
from CHECK_ODS2;
quit;

proc sql noprint;
select distinct 'RANK'||'_'||variable
into :name_ranks separated BY " "
from CHECK_ODS;
quit;

%PUT &name_ranks;

data try3;
set try2;
&formula_ODS;
MIN_ODS=MIN(OF BODK:);
MAX_ODS=MAX(OF BODK:);
run;


proc rank data= try3  groups=4
out=rankim_res;
var bodk:;
ranks &name_ranks;
run;