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;