**cd g:\philippe use drs_mi, clear list in 1 compress ***CHECK DATA tab cluster, m tab sex, m tab age, m tab treat_history, m tab h, m tab r, m tab e, m tab s, m ***MDR IS h and r count if h==1 & r==1 gen mdr = h+r tab mdr, m gen mdr_gp = mdr recode mdr_gp 2=1 1=0 tab mdr_gp ***PERCENTAGE WITH MISSING MDR DATA, BY CLUSTER, AGE GROUP, SEX, AND TREATMENT HISTORY gen mdr_missing = 0 replace mdr_missing = 1 if mdr_gp==. ***GROUP AGE histogram age, start(10) width(5) tab age gen agegrp = age recode agegrp min/29=1 30/39=2 40/49=3 50/max=4 tab agegrp ***% missing by age, sex, cluster, treatment history tab agegrp mdr_missing, row chi2 tab sex mdr_missing, row chi2 tab cluster mdr_missing, row chi2 tab treat_history mdr_missing, row chi2 ***PATTERNS BY AGE, WITH TREATMENT HISTORY AND MDR tab agegrp treat_history, row chi2 tab agegrp mdr_gp, row chi2 ***COMPARISONS AMONG AGE GROUPS, OVERALL AND STRATIFIED BY TREATMENT HISTORY mhodds mdr_gp agegrp, c(2,1) mhodds mdr_gp agegrp, c(2,1) by(treat_history) mhodds mdr_gp agegrp, c(3,1) mhodds mdr_gp agegrp, c(3,1) by(treat_history) mhodds mdr_gp agegrp, c(4,1) mhodds mdr_gp agegrp, c(4,1) by(treat_history) ***PATTERNS BY SEX, WITH TREATMENT HISTORY AND MDR tab sex treat_history, row chi2 tab sex mdr_gp, row chi2 mhodds mdr_gp sex, c(1,0) mhodds mdr_gp sex, c(1,0) by(treat_history) ***SEEMS THERE IS MALE/FEMALE DIFFERENCE IN % MDR, AND NOT ALL EXPLAINED BY TREATMENT HISTORY ***LITTLE DIFFERENCE BY AGE GROUP FOR MDR, BUT SOME VARIATION FOR TREATMENT HISTORY ****PATTERNS BY TREATMENT HISTORY tab treat_history mdr_gp, row chi2 ****DOES ODDS RATIO FOR TREATMENT HISTORY 1 VS 0 VARY BY CLUSTER? mhodds mdr_gp treat_history, c(1,0) mhodds mdr_gp treat_history, c(1,0) by(cluster) ***LITTLE EVIDENCE THAT ODDS RATIO FOR MDR TB, COMPARING TREATMENT HISTORY /// 1 VS 0, VARIES BY CLUSTER ****MDR TB BY CLUSTER, AND TREATMENT HISTORY BY CLUSTER tab cluster mdr_gp, row chi2 tab cluster treat_history, row chi2 *****CLUSTER MEANS, FOR INDIVIDUALS WITH DATA ON MDR, BY TREATMENT HISTORY preserve drop if mdr_gp==. collapse (sum) mdr_gp (count) id, by(treat_history cluster) list rename id total gen mdr_prev = mdr_gp / total hist mdr_prev, by(treat_history) start(0) width(0.05) fraction sort treat_history ***COEFFICIENT OF VARIATION OF CLUSTER MEANS IS LOWER FOR RETREATMENT THAN NEW CASES by treat_history: summ mdr_prev restore ***COUNT NUMBER OF INDIVIDUALS PER CLUSTER, SEPARATELY FOR NEW AND RETREATMENT CASES sort treat_history cluster by treat_history cluster: gen totrec=_N by treat_history cluster: gen recnum=_n tab totrec if recnum==1 & treat_history==0 tab totrec if recnum==1 & treat_history==1 ***COUNT NUMBER OF INDIVIDUALS PER CLUSTER, OVERALL sort cluster by cluster: gen totsize=_N by cluster: gen recnum1=_n tab totsize if recnum1==1 gen pweight = 27/totsize ****1) ANALYSIS RESTRICTED TO INDIVIDUALS WITH DATA ON MDR TB ****FIRST DO ANALYSIS SEPARATELY BY TREATMENT HISTORY ****NB FOR RETREATMENT CASES, RANDOM-EFFECTS MODEL NOT APPROPRIATE? /// ****FOR CLUSTERS WITH RELATIVELY FEW RETREATMENT CASES, THIS REFLECTS THAT A LOW /// ****PROPORTION OF TOTAL CASES IN THE CLUSTER ARE RETREATMENT CASES. /// ****BUT IN THE RANDOM-EFFECTS MODEL RESTRICTED TO RETREATMENT CASES, /// ****A RETREATMENT CASE IN A CLUSTER WITH FEW OTHER /// ****RETREATMENT CASES WILL GET MORE WEIGHT IN THE ANALYSIS THAN A RETREATMENT CASE IN /// ****A CLUSTER WITH MANY RETREATMENT CASES. /// ****WHEREAS, GIVEN THAT FOR CLUSTERS WITH FEW RETREATMENT CASES AT THE TIME THE /// ****TARGET SAMPLE SIZE FOR THE CLUSTER WAS REACHED, THERE WAS EXTRA RECRUITMENT OF /// ****RETREATMENT CASES, IF ANYTHING THE RETREATMENT CASES /// ****FROM CLUSTERS WITH FEW RETREATMENT CASES SHOULD BE DOWN-WEIGHTED RATHER THAN UP-WEIGHTED preserve ****CASES WITH NO PREVIOUS TREATMENT keep if treat_history==0 ***1) NO ALLOWANCE FOR CLUSTERING xi: logit mdr_gp nlcom exp(_b[_cons])/(1+exp(_b[_cons])) ***2) ALLOWANCE FOR CLUSTERING xi: logit mdr_gp, robust cluster(cluster) nlcom exp(_b[_cons])/(1+exp(_b[_cons])) ***3) RANDOM-EFFECTS MODEL TO ALLOW FOR CLUSTERING xi: xtlogit mdr_gp, re i(cluster) nlcom exp(_b[_cons])/(1+exp(_b[_cons])) quadchk, nooutput restore preserve ****PATIENTS WITH PREVIOUS TREATMENT keep if treat_history==1 ***1) NO ALLOWANCE FOR CLUSTERING xi: logit mdr_gp nlcom exp(_b[_cons])/(1+exp(_b[_cons])) ***2) ALLOWANCE FOR CLUSTERING xi: logit mdr_gp, robust cluster(cluster) nlcom exp(_b[_cons])/(1+exp(_b[_cons])) ***3) RANDOM-EFFECTS MODEL TO ALLOW FOR CLUSTERING xi: xtlogit mdr_gp, re i(cluster) nlcom exp(_b[_cons])/(1+exp(_b[_cons])) ***SEEMS THIS MODEL DOES NOT FIT WELL quadchk, nooutput restore ****NOW DO COMBINED ANALYSIS OF ALL PATIENTS, BUT INCLUDE /// TREATMENT HISTORY AS EXPLANATORY VARIABLE AND THEN PREDICT PREVALENCE /// SEPARATELY FOR PREVIOUS TREATMENT NO VS YES ***NO ALLOWANCE FOR CLUSTERING xi: logit mdr_gp i.treat_history nlcom exp(_b[_cons])/(1+exp(_b[_cons])) nlcom exp(_b[_cons]+_b[_Itreat_his_1])/(1+exp(_b[_cons]+_b[_Itreat_his_1])) ***ALLOWANCE FOR CLUSTERING xi: logit mdr_gp i.treat_history, robust cluster(cluster) nlcom exp(_b[_cons])/(1+exp(_b[_cons])) nlcom exp(_b[_cons]+_b[_Itreat_his_1])/(1+exp(_b[_cons]+_b[_Itreat_his_1])) ***RANDOM-EFFECTS MODEL ****THIS MODEL DOES NOT FIT WELL xi: xtlogit mdr_gp i.treat_history, re i(cluster) nlcom exp(_b[_cons])/(1+exp(_b[_cons])) nlcom exp(_b[_cons]+_b[_Itreat_his_1])/(1+exp(_b[_cons]+_b[_Itreat_his_1])) quadchk, nooutput ***4) SURVEY METHOD, ALLOWING FOR CLUSTERING AND WEIGHTING FOR TOTAL CLUSTER SIZE ***OVERALL, CONSIDER THAT FOR DRS DESIGN WEIGHTING IS NOT NECESSARY/APPROPRIATE svyset cluster [pw=pweight] xi: svy: logit mdr_gp i.treat_history nlcom exp(_b[_cons])/(1+exp(_b[_cons])) nlcom exp(_b[_cons]+_b[_Itreat_his_1])/(1+exp(_b[_cons]+_b[_Itreat_his_1])) ***TRY TO UNDERSTAND DIFFERENCES BETWEEN THE MODELS gen clustersize_gp = totsize tab totsize tab totsize if recnum1==1 recode clustersize_gp min/39=1 40/45=2 46/max=3 tab totsize clustersize_gp tab clustersize_gp mdr_gp, row tab clustersize_gp mdr_gp if treat_history==0, row tab clustersize_gp mdr_gp if treat_history==1, row tab clustersize_gp treat_history, row ****OVERALL CONCLUSION, IGNORING MISSING DATA ISSUE: ****1) BEST NOT TO USE RANDOM-EFFECTS AS DOES NOT WORK WELL FOR RETREATMENT CASES ****AND SINCE ONLY 30 CLUSTERS IN DRS DESIGN, NOT RELIABLE ENOUGH TO RECOMMEND ****SIMPLER METHOD OF ADJUSTING STANDARD ERROR FOR CLUSTERING IS TRANSPARENT ****AND APPROPRIATE HERE ****2) NO NEED FOR WEIGHTING, GIVEN THE DRS DESIGN ****3) MUST ADJUST THE CI FOR CLUSTERING, EVEN IF THE DESIGN EFFECT IS SMALL, GIVEN THE /// ****DRS DESIGN IS A CLUSTER SAMPLE SURVEY ****SO: STICK TO SIMPLE MODEL THAT ALLOWS FOR CLUSTERING IN THE STANDARD ERROR/CI ****BUT GIVES EQUAL WEIGHT TO EACH CASE IN THE ESTIMATE OF MDR TB ********************************************** ********************************************** ****NOW ADDRESS MISSING VALUES WITH IMPUTATION ********************************************** ********************************************** ****MV PATTERN IS VIRTUALLY "ALL OR NOTHING" FOR DRS RESULTS ****ON THIS BASIS DO NOT USE E AND S TO IMPUTE mvpatterns id cluster age sex mvpatterns h r e s mvpatterns h r ***NO EVIDENCE OF VARIATION IN MDR PERCENTAGE BY CLUSTER, BUT NB SMALL CLUSTER SIZE tab cluster mdr_gp, row chi2 compress ***DUMMY VARIABLES FOR USE IN IMPUTATION MODEL gen cluster_2 = 0 replace cluster_2 = 1 if cluster==2 gen cluster_3 = 0 replace cluster_3 = 1 if cluster==3 gen cluster_4 = 0 replace cluster_4 = 1 if cluster==4 gen cluster_5 = 0 replace cluster_5 = 1 if cluster==5 gen cluster_6 = 0 replace cluster_6 = 1 if cluster==6 gen cluster_7 = 0 replace cluster_7 = 1 if cluster==7 gen cluster_8 = 0 replace cluster_8 = 1 if cluster==8 gen cluster_9 = 0 replace cluster_9 = 1 if cluster==9 gen cluster_10 = 0 replace cluster_10 = 1 if cluster==10 gen cluster_11 = 0 replace cluster_11 = 1 if cluster==11 gen cluster_12 = 0 replace cluster_12 = 1 if cluster==12 gen cluster_13 = 0 replace cluster_13 = 1 if cluster==13 gen cluster_14 = 0 replace cluster_14 = 1 if cluster==14 gen cluster_15 = 0 replace cluster_15 = 1 if cluster==15 gen cluster_16 = 0 replace cluster_16 = 1 if cluster==16 gen cluster_17 = 0 replace cluster_17 = 1 if cluster==17 gen cluster_18 = 0 replace cluster_18 = 1 if cluster==18 gen cluster_19 = 0 replace cluster_19 = 1 if cluster==19 gen cluster_20 = 0 replace cluster_20 = 1 if cluster==20 gen cluster_21 = 0 replace cluster_21 = 1 if cluster==21 gen cluster_22 = 0 replace cluster_22 = 1 if cluster==22 gen cluster_23 = 0 replace cluster_23 = 1 if cluster==23 gen cluster_24 = 0 replace cluster_24 = 1 if cluster==24 gen cluster_25 = 0 replace cluster_25 = 1 if cluster==25 gen cluster_26 = 0 replace cluster_26 = 1 if cluster==26 gen cluster_27 = 0 replace cluster_27 = 1 if cluster==27 gen cluster_28 = 0 replace cluster_28 = 1 if cluster==28 gen cluster_29 = 0 replace cluster_29 = 1 if cluster==29 gen cluster_30 = 0 replace cluster_30 = 1 if cluster==30 gen cluster_31 = 0 replace cluster_31 = 1 if cluster==31 gen cluster_32 = 0 replace cluster_32 = 1 if cluster==32 gen cluster_33 = 0 replace cluster_33 = 1 if cluster==33 gen cluster_34 = 0 replace cluster_34 = 1 if cluster==34 gen cluster_35 = 0 replace cluster_35 = 1 if cluster==35 gen cluster_36 = 0 replace cluster_36 = 1 if cluster==36 gen cluster_37 = 0 replace cluster_37 = 1 if cluster==37 gen cluster_38 = 0 replace cluster_38 = 1 if cluster==38 gen cluster_39 = 0 replace cluster_39 = 1 if cluster==39 gen cluster_40 = 0 replace cluster_40 = 1 if cluster==40 ***DUMMY VARIABLES FOR AGE TO USE IN IMPUTATION MODEL gen agegrp2=0 if agegrp!=. replace agegrp2=1 if agegrp==2 gen agegrp3=0 if agegrp!=. replace agegrp3=1 if agegrp==3 gen agegrp4=0 if agegrp!=. replace agegrp4=1 if agegrp==4 ****NEED TO INCLUDE CLUSTER, TREATMENT HISTORY, SEX IN MODEL ****NO STRONG EVIDENCE NEED TO INCLUDE AGE, BUT INCLUDE TO BE "SAFE" ****ALSO AGE MAY BE AN IMPORTANT PREDICTOR IN OTHER SETTINGS ****WANT TO KNOW THAT THE IMPUTATION HAS ALLOWED FOR AGE GROUP AND SEX, TREATMENT HISTORY, AND CLUSTER ****PREDICT AGE AS A CONTINUOUS VARIABLE WHEN IMPUTING MISSING VALUES FOR AGE, ****BUT USE AGE AS A CATEGORICAL VARIABLE (DUMMY VARIABLES) FOR PREDICTING OTHER VARIABLES ****TRY H,R AND MDR; AND ALSO JUST MDR IN THE IMPUTATION MODEL ***SORT ON CLUSTER AND ID TO ENSURE MISSING VALUE IMPUTATION IS REPRODUCIBLE sort cluster id ***H AND R AND MDR_GP, DRY RUN /* ice age agegrp2 agegrp3 agegrp4 sex treat_history cluster_* h r mdr_gp, passive(mdr_gp: h*r \ agegrp2: age>=30 & age<=39 \ agegrp3: age>=40 & age<=49 \ agegrp4: age>=50 & age!=. ) /// eq(h:agegrp2 agegrp3 agegrp4 sex treat_history cluster_2 cluster_3 cluster_4 cluster_5 cluster_6 cluster_7 cluster_8 cluster_9 cluster_10 cluster_11 cluster_12 cluster_13 cluster_14 cluster_15 cluster_16 cluster_17 cluster_18 cluster_19 cluster_20 cluster_21 cluster_22 cluster_23 cluster_24 cluster_25 cluster_26 cluster_27 cluster_28 cluster_29 cluster_30 cluster_31 cluster_32 cluster_33 cluster_34 cluster_35 cluster_36 cluster_37 cluster_38 cluster_39 cluster_40 r, /// r: agegrp2 agegrp3 agegrp4 sex treat_history cluster_2 cluster_3 cluster_4 cluster_5 cluster_6 cluster_7 cluster_8 cluster_9 cluster_10 cluster_11 cluster_12 cluster_13 cluster_14 cluster_15 cluster_16 cluster_17 cluster_18 cluster_19 cluster_20 cluster_21 cluster_22 cluster_23 cluster_24 cluster_25 cluster_26 cluster_27 cluster_28 cluster_29 cluster_30 cluster_31 cluster_32 cluster_33 cluster_34 cluster_35 cluster_36 cluster_37 cluster_38 cluster_39 cluster_40 h, /// sex: agegrp2 agegrp3 agegrp4 treat_history cluster_2 cluster_3 cluster_4 cluster_5 cluster_6 cluster_7 cluster_8 cluster_9 cluster_10 cluster_11 cluster_12 cluster_13 cluster_14 cluster_15 cluster_16 cluster_17 cluster_18 cluster_19 cluster_20 cluster_21 cluster_22 cluster_23 cluster_24 cluster_25 cluster_26 cluster_27 cluster_28 cluster_29 cluster_30 cluster_31 cluster_32 cluster_33 cluster_34 cluster_35 cluster_36 cluster_37 cluster_38 cluster_39 cluster_40 h r mdr_gp) dryrun */ ****THIS IS MORE EFFICIENT ice age agegrp2 agegrp3 agegrp4 sex treat_history cluster_* h r mdr_gp, passive(mdr_gp: h*r) /// substitute(age: agegrp2 agegrp3 agegrp4) dryrun ***H AND R AND MDR_GP, IMPUTE sort cluster id /* ice age agegrp2 agegrp3 agegrp4 sex treat_history cluster_* h r mdr_gp, passive(mdr_gp: h*r \ agegrp2: age>=30 & age<=39 \ agegrp3: age>=40 & age<=49 \ agegrp4: age>=50 & age!=.) /// eq(h:agegrp2 agegrp3 agegrp4 sex treat_history cluster_2 cluster_3 cluster_4 cluster_5 cluster_6 cluster_7 cluster_8 cluster_9 cluster_10 cluster_11 cluster_12 cluster_13 cluster_14 cluster_15 cluster_16 cluster_17 cluster_18 cluster_19 cluster_20 cluster_21 cluster_22 cluster_23 cluster_24 cluster_25 cluster_26 cluster_27 cluster_28 cluster_29 cluster_30 cluster_31 cluster_32 cluster_33 cluster_34 cluster_35 cluster_36 cluster_37 cluster_38 cluster_39 cluster_40 r, /// r: agegrp2 agegrp3 agegrp4 sex treat_history cluster_2 cluster_3 cluster_4 cluster_5 cluster_6 cluster_7 cluster_8 cluster_9 cluster_10 cluster_11 cluster_12 cluster_13 cluster_14 cluster_15 cluster_16 cluster_17 cluster_18 cluster_19 cluster_20 cluster_21 cluster_22 cluster_23 cluster_24 cluster_25 cluster_26 cluster_27 cluster_28 cluster_29 cluster_30 cluster_31 cluster_32 cluster_33 cluster_34 cluster_35 cluster_36 cluster_37 cluster_38 cluster_39 cluster_40 h, /// sex: agegrp2 agegrp3 agegrp4 treat_history cluster_2 cluster_3 cluster_4 cluster_5 cluster_6 cluster_7 cluster_8 cluster_9 cluster_10 cluster_11 cluster_12 cluster_13 cluster_14 cluster_15 cluster_16 cluster_17 cluster_18 cluster_19 cluster_20 cluster_21 cluster_22 cluster_23 cluster_24 cluster_25 cluster_26 cluster_27 cluster_28 cluster_29 cluster_30 cluster_31 cluster_32 cluster_33 cluster_34 cluster_35 cluster_36 cluster_37 cluster_38 cluster_39 cluster_40 h r mdr_gp) /// saving(drs_clusterimpute_new, replace) m(10) cycles(10) seed(101) */ ****THIS IS MORE EFFICIENT ice age agegrp2 agegrp3 agegrp4 sex treat_history cluster_* h r mdr_gp, passive(mdr_gp: h*r) /// substitute(age: agegrp2 agegrp3 agegrp4) saving(drs_clusterimpute_new2, replace) m(10) cycles(10) seed(101) ****MDR_GP ONLY, DRY RUN sort cluster id /* ice age agegrp2 agegrp3 agegrp4 sex treat_history cluster_* mdr_gp, passive(agegrp2: age>=30 & age<=39 \ agegrp3: age>=40 & age<=49 \ agegrp4: age>=50 & age!=.) /// eq(mdr_gp: agegrp2 agegrp3 agegrp4 sex treat_history cluster_2 cluster_3 cluster_4 cluster_5 cluster_6 cluster_7 cluster_8 cluster_9 cluster_10 cluster_11 cluster_12 cluster_13 cluster_14 cluster_15 cluster_16 cluster_17 cluster_18 cluster_19 cluster_20 cluster_21 cluster_22 cluster_23 cluster_24 cluster_25 cluster_26 cluster_27 cluster_28 cluster_29 cluster_30 cluster_31 cluster_32 cluster_33 cluster_34 cluster_35 cluster_36 cluster_37 cluster_38 cluster_39 cluster_40, /// sex: agegrp2 agegrp3 agegrp4 treat_history cluster_2 cluster_3 cluster_4 cluster_5 cluster_6 cluster_7 cluster_8 cluster_9 cluster_10 cluster_11 cluster_12 cluster_13 cluster_14 cluster_15 cluster_16 cluster_17 cluster_18 cluster_19 cluster_20 cluster_21 cluster_22 cluster_23 cluster_24 cluster_25 cluster_26 cluster_27 cluster_28 cluster_29 cluster_30 cluster_31 cluster_32 cluster_33 cluster_34 cluster_35 cluster_36 cluster_37 cluster_38 cluster_39 cluster_40 mdr_gp) dryrun */ ***THIS IS MORE EFFICIENT ice age agegrp2 agegrp3 agegrp4 sex treat_history cluster_* mdr_gp, /// substitute(age: agegrp2 agegrp3 agegrp4) dryrun ****MDR_GP ONLY, IMPUTE sort cluster id /* ice age agegrp2 agegrp3 agegrp4 sex treat_history cluster_* mdr_gp, passive(agegrp2: age>=30 & age<=39 \ agegrp3: age>=40 & age<=49 \ agegrp4: age>=50 & age!=.) /// eq(mdr_gp: agegrp2 agegrp3 agegrp4 sex treat_history cluster_2 cluster_3 cluster_4 cluster_5 cluster_6 cluster_7 cluster_8 cluster_9 cluster_10 cluster_11 cluster_12 cluster_13 cluster_14 cluster_15 cluster_16 cluster_17 cluster_18 cluster_19 cluster_20 cluster_21 cluster_22 cluster_23 cluster_24 cluster_25 cluster_26 cluster_27 cluster_28 cluster_29 cluster_30 cluster_31 cluster_32 cluster_33 cluster_34 cluster_35 cluster_36 cluster_37 cluster_38 cluster_39 cluster_40, /// sex: agegrp2 agegrp3 agegrp4 treat_history cluster_2 cluster_3 cluster_4 cluster_5 cluster_6 cluster_7 cluster_8 cluster_9 cluster_10 cluster_11 cluster_12 cluster_13 cluster_14 cluster_15 cluster_16 cluster_17 cluster_18 cluster_19 cluster_20 cluster_21 cluster_22 cluster_23 cluster_24 cluster_25 cluster_26 cluster_27 cluster_28 cluster_29 cluster_30 cluster_31 cluster_32 cluster_33 cluster_34 cluster_35 cluster_36 cluster_37 cluster_38 cluster_39 cluster_40 mdr_gp) /// saving(drs_clusterimpute_mdrgp, replace) m(10) cycles(10) seed(101) */ ***THIS IS MORE EFFICIENT ice age agegrp2 agegrp3 agegrp4 sex treat_history cluster_* mdr_gp, /// substitute(age: agegrp2 agegrp3 agegrp4) saving(drs_clusterimpute_mdrgp2, replace) m(10) cycles(10) seed(101) ****CAN ALSO TRY IMPUTING SEPARATELY FOR TREATMENT HISTORY 0 AND 1 ****THIS MIGHT MAKE A DIFFERENCE, AS COEFFICIENT OF VARIATION OF CLUSTER MEANS IS /// ****LOWER FOR RETREATMENT THAN FOR NEW CASES ****BUT: NO EVIDENCE THAT ASSOCIATION BETWEEN TREATMENT HISTORY AND MDR VARIES BY /// ****CLUSTER - IMPLYING THAT NO EVIDENCE THAT THE EFFECT OF CLUSTER VARIES BY NEW VS /// ****RETREATMENT CASE. ****ALSO NO EVIDENCE THAT MALE/FEMALE DIFFERENCE VARIES BY TREATMENT HISTORY ****OR THAT EFFECT OF AGE VARIES BY TREATMENT HISTORY ****SO OVERALL, LITTLE SUGGESTION THAT NEED TO MODEL NEW AND RETREATMENT CASES SEPARATELY *****CAVEAT: THIS MIGHT BE DIFFERENT IN OTHER DATASETS *****SAFEST IS TO DO BOTH COMBINED AND SEPARATE ANALYSIS OF NEW AND RETREATMENT CASES /// ***** - AND CHOOSE BETWEEN THEM BASED ON OBSERVED PATTERNS IN THE NON-MISSING DATA *****IF NO EVIDENCE THAT ASSOCIATION BETWEEN TREATMENT HISTORY AND MDR VARIES /// BY CLUSTER, SEX, OR AGE GROUP,THEN IT IS MOST EFFICIENT TO FIT AN OVERALL MODEL /// COMBINING NEW AND RETREATMENT CASES - THIS IS PARTICULARLY THE CASE FOR THE IMPUTATION ****MDR PREVALENCE AFTER IMPUTING MISSING DATA, IMPUTING H AND R AND THEN MDR PASSIVELY /* clear use drs_clusterimpute_new rename treat_history trt_hist xi: micombine logit mdr_gp i.trt_hist, robust cluster(cluster) nlcom exp(_b[_cons])/(1+exp(_b[_cons])) nlcom exp(_b[_cons]+_b[_Itrt_hist_1])/(1+exp(_b[_cons]+_b[_Itrt_hist_1])) ***compare to original dataset with missing data xi: logit mdr_gp i.trt_hist if _mj==0, robust cluster(cluster) nlcom exp(_b[_cons])/(1+exp(_b[_cons])) nlcom exp(_b[_cons]+_b[_Itrt_hist_1])/(1+exp(_b[_cons]+_b[_Itrt_hist_1])) */ clear use drs_clusterimpute_new2 rename treat_history trt_hist xi: micombine logit mdr_gp i.trt_hist, robust cluster(cluster) nlcom exp(_b[_cons])/(1+exp(_b[_cons])) nlcom exp(_b[_cons]+_b[_Itrt_hist_1])/(1+exp(_b[_cons]+_b[_Itrt_hist_1])) ***compare to original dataset with missing data xi: logit mdr_gp i.trt_hist if _mj==0, robust cluster(cluster) nlcom exp(_b[_cons])/(1+exp(_b[_cons])) nlcom exp(_b[_cons]+_b[_Itrt_hist_1])/(1+exp(_b[_cons]+_b[_Itrt_hist_1])) /* ****MDR PREVALENCE AFTER IMPUTING MISSING DATA, IMPUTING MDR AND IGNORING SEPARATE H AND R VALUES clear use drs_clusterimpute_mdrgp rename treat_history trt_hist xi: micombine logit mdr_gp i.trt_hist, robust cluster(cluster) nlcom exp(_b[_cons])/(1+exp(_b[_cons])) nlcom exp(_b[_cons]+_b[_Itrt_hist_1])/(1+exp(_b[_cons]+_b[_Itrt_hist_1])) ***compare to original dataset with missing data xi: logit mdr_gp i.trt_hist if _mj==0, robust cluster(cluster) nlcom exp(_b[_cons])/(1+exp(_b[_cons])) nlcom exp(_b[_cons]+_b[_Itrt_hist_1])/(1+exp(_b[_cons]+_b[_Itrt_hist_1])) */ ****MDR PREVALENCE AFTER IMPUTING MISSING DATA, IMPUTING MDR AND IGNORING SEPARATE H AND R VALUES clear use drs_clusterimpute_mdrgp2 rename treat_history trt_hist xi: micombine logit mdr_gp i.trt_hist, robust cluster(cluster) nlcom exp(_b[_cons])/(1+exp(_b[_cons])) nlcom exp(_b[_cons]+_b[_Itrt_hist_1])/(1+exp(_b[_cons]+_b[_Itrt_hist_1])) ***compare to original dataset with missing data xi: logit mdr_gp i.trt_hist if _mj==0, robust cluster(cluster) nlcom exp(_b[_cons])/(1+exp(_b[_cons])) nlcom exp(_b[_cons]+_b[_Itrt_hist_1])/(1+exp(_b[_cons]+_b[_Itrt_hist_1]))