Thanks a lot for your response Rob! I essentially followed this step from SAS support (http://support.sas.com/kb/22/604.html😞 Marginal effects using results from PROC LOGISTIC To compute the marginal effects using results from a model fit with PROC LOGISTIC (or other modeling procedure), include an ODS OUTPUT statement to write the ParameterEstimates table to a data set. Also specify the OUTPUT statement to save the predicted probabilities for a logistic model (use the P= option), or the x'b values for a probit model (use the XBETA= option) to a data set. proc logistic data=remiss;
model remiss(event="1")=blast smear;
ods output parameterestimates=logparms;
output out=outlog p=p;
run; Use PROC TRANSPOSE to arrange the parameter estimates as a row and rename them so as not to conflict with the original variable names. proc transpose data=logparms out=tlog (rename=(blast=tblast smear=tsmear));
var estimate;
id variable;
run; Then use a DATA step to combine the parameter estimates and OUT= data sets and compute the marginal effects for each observation in the original data. Only the marginal effects for the response level representing the event of interest (REMISS=1) are computed below. The marginal effect for REMISS=0 could be similarly computed. data outlog;
if _n_=1 then set tlog;
set outlog;
MEffBlast = p*(1-p)*tblast;
MEffSmear = p*(1-p)*tsmear;
run;
proc print noobs;
var smear blast MEff:;
run; I used mianalyze to get the appropriate standard errors but used the imputed runs to calculate the average marginal effects 🙂 Thanks again!
... View more