I am attempting to conduct a mediation analysis of multiple imputation dataset where the outcome variable is binary. I was able to find only limited information online for how to combine causalmed and mianalyze. The only available example (Usage Note 68444: Examples of combining PROC CAUSALMED results in PROC MIANALYZE) is for a continuous outcome. I have attempted to replicate this code, adding a class statement and converting the estimate produced to an odd ratio. I want to ensure the code I produced is correct and that there is not a better way to combine these procedures. A few details about the data: the sample prior to mi n=2146 proc mi with 25 imputations performed depres is the outcome variable, binary yes/no depression symptoms of clinical concern ACE_four is the predictor variable, binary yes/no experience of 4 or more adverse childhood experiences dadmeancat is the mediator, binary low/high support from baby's father matage, fplevel, education, racesap and fammeancat are covariates TITLE " MULTIPLE IMPUTATION MEDIATION ANALYSIS - depres and dadsmeancat";
proc causalmed data=mi_FCS_ACEcat all;
by _imputation_;
class Depres(descending) ACE_four(descending) fplevel(descending) education(descending) racesap famsmeancat(descending) dadsmeancat(descending);
model Depres=ACE_four dadsmeancat ACE_four*dadsmeancat;
mediator dadsmeancat=ACE_four;
covar mat_age fplevel education racesap famsmeancat;
ods output OutcomeEstimates=Outcome_Est MediatorEstimates=Med_Est PercentDecomp=pctdecomp EffectDecomp=effdecomp EffectSummary=effsum;
run;
proc mianalyze parms(classvar=level)=outcome_Est edf=2126;
Class fplevel education racesap famsmeancat ace_four dadsmeancat;
modeleffects intercept mat_age fplevel education racesap famsmeancat ace_four dadsmeancat ace_four*dadsmeancat;
title 'combined estimates for the outcome model';
run;
proc mianalyze parms(classvar=level)=Med_Est edf=2126;
Class fplevel education racesap famsmeancat ace_four;
modeleffects intercept mat_age fplevel education racesap famsmeancat ace_four;
title 'Combined estimates for the meditor model';
run;
data effsum; set effsum;
OR=exp(estimate);
run;
proc sort data=effsum;
by effect _imputation_;
run;
proc mianalyze data=effsum edf=2126;
by effect;
modeleffects OR;
stderr stderr;
title 'Summary of Causal Effects';
run;
... View more