// Define global macros for different sets of variables global yvars logtotal1 logtotal3 // Outcome variables global dvars lpages1 lpages3 lsession1 lsession3 // Intervention uptake variables (logged) global xvars logtotal_bs age gender educ_cat confidence_0 AUDITC EQ5D_0 // Baseline covariates global time_xvars i.time#c.logtotal_bs i.time#c.age i.time#i.gender /// i.time#i.educ_cat i.time#c.confidence_0 i.time#c.AUDITC i.time#c.EQ5D_0 // Interaction terms // Complete Case Analysis use DYDwide, clear regress logtotal3 group $xvars, eform(ratio) // Generalised Estimating Equations (GEE) reshape long logtotal, i(userid) j(time) // One record per time per individual xtset userid time gen group1 = group*(time==1) gen group3 = group*(time==3) xtgee logtotal i.time group1 group3 $xvars $time_xvars, corr(uns) robust eform // Mixed Model, different variances by arm xtmixed logtotal i.time group1 group3 $xvars $time_xvars || userid:,nocons || , /// residuals(unstructured,t(time) by(group)) // Multiple Imputation use DYDwide, clear ice $yvars $xvars, /// Without website use variables seed(1234) m(50) by(group) match($yvars) saving(imputed1, replace) ice $yvars $xvars $dvars, /// With website use variables seed(1234) m(50) by(group) match($yvars) saving(imputed2, replace) use imputed1, clear // MI1 mim: regress logtotal3 group $xvars, eform(Ratio) mim, mcerror eform use imputed2, clear // MI2 mim: regress logtotal3 group $xvars, eform(Ratio) mim, mcerror eform // Sensitivity Analyses use DYDwide, clear rctmiss, pmmdelta(ln(0.5)) eform(Ratio): reg logtotal3 group $xvars rctmiss, pmmdelta(ln(1.5)) eform(Ratio): reg logtotal3 group $xvars rctmiss, pmmdelta(ln(1.75)) eform(Ratio): reg logtotal3 group $xvars rctmiss, pmmdelta(ln(0.50)*(group==1)) eform(Ratio): reg logtotal3 group $xvars rctmiss, pmmdelta(ln(1.25)*(group==1)) eform(Ratio): reg logtotal3 group $xvars rctmiss, pmmdelta(ln(1.50)*(group==1)) eform(Ratio): reg logtotal3 group $xvars rctmiss, pmmdelta(ln(0.50)*(group==0)) eform(Ratio): reg logtotal3 group $xvars rctmiss, pmmdelta(ln(1.25)*(group==0)) eform(Ratio): reg logtotal3 group $xvars rctmiss, pmmdelta(ln(1.50)*(group==0)) eform(Ratio): reg logtotal3 group $xvars // Using number of email reminders * Alho1: common IMP across attempts and arms alho logtotal3 group $xvars, repeats(nreminders) * Alho2: common IMP across attempts but differs across arms alho logtotal3 group $xvars, repeats(nreminders) impeq(group) lincom [respond]groupXlogtotal3 + [respond]logtotal3 // IMP in intervention arm