use "path/dataset", clear ** q5 education, q6 venue-visits, q7 outness; q8 experienced stigma, q9 Knowing testing facilities, q10 condoms received, q12 tested for STI ** q14 tested for HIV in the previous 12 months, q36 satisfied with sex life ** Gen HIVnew2 gen HIVnew2 = HIVnew *tab q32 q31a if q32 == . & q31a == 2 & hiv_status == 3 replace HIVnew2 = 1 if q32 == . & q31a == 2 & hiv_status == 3 // include 13 from indeterminate HIV status who did not report an HIV test and tested positive in the study sample replace HIVnew2 = . if HIVnew == 3 lab val HIVnew2 HIVnew_L tab agerec10um HIVnew2, col tab Migration_Status HIVnew2, col tab q5_Rec1 HIVnew2, col tab q6bR HIVnew2, col tab q7_Recode_ULI HIVnew2, col tab q9 HIVnew2, col tab q10 HIVnew2, col tab q12 HIVnew2, col tab q13_total HIVnew2, col tab q13_bin HIVnew2, col tab q14 HIVnew2, col tab partnumsexcat HIVnew2, col tab partnumuaicat HIVnew2, col tab sexrole HIVnew2, col tab GARPR1_12 HIVnew2, col tab GARPR1_13 HIVnew2, col tab sexpract HIVnew2, col tab num_drugs HIVnew2, col tab anydrug2 HIVnew2, col tab concord HIVnew2, col tab serocomm HIVnew2, col tab q36R HIVnew2, col tab partner_all HIVnew2, col tab sexpract HIVnew2, col tab q26_weight HIVnew2, col gen alcohol = q30a_mi replace alcohol = 0 if q30a_mi == 2 label define alcohol_L 0 "no alcohol" 1 "alcohol" lab val alcohol alcohol_L gen cannabis = q30e_mi replace cannabis = 0 if q30e_mi == 2 label define cannabis_L 0 "no cannabis" 1 "cannabis" lab val cannabis cannabis_L gen sps = . replace sps = 0 if q30b_mi == 2 | q30d_mi == 2 replace sps = 1 if q30b_mi == 1 | q30d_mi == 1 label define sps_L 0 "no sps" 1 "sps" lab val sps sps_L gen chemsex = . replace chemsex = 0 if (q30h_mi == 2 | q30i1 == 2 | q30i2 == 2 | q30i3 == 2) replace chemsex = 1 if (q30h_mi == 1 | q30i1 == 1 | q30i2 == 1 | q30i3 == 1) label define chemsex_L 0 "no chemsex" 1 "chemsex" lab val chemsex chemsex_L gen party_2 = . replace party_2 = 0 if (q30c_mi == 2 | q30f_mi == 2 | q30g_mi == 2) replace party_2 = 1 if (q30c_mi == 1 | q30f_mi == 1 | q30g_mi == 1) label define party_2_L 0 "no party_2" 1 "party_2" lab val party_2 party_2_L gen num_drugs_2 = num_drugs replace num_drugs_2 = 4 if (num_drugs > 3 & num_drugs != .) label define num_drugs_2_L 0 "0" 1 "1" 2 "2" 3 "3" 4 "4+" lab val num_drugs_2 num_drugs_2_L ********** * RECENCY OF TEST VARIABLE gen testrec2 = 2 replace testrec2 = 1 if q14 == 1 & q31 ==. replace testrec2 = 1 if q14 == . & q31 == 2013 replace testrec2 = 1 if q14 == .p & q31 == 2013 replace testrec2 = 1 if q14 == 1 & q31 > 2011 replace testrec2 = 1 if q31 == 2014 replace testrec2 = 1 if q31 == 2013 & q14 == 2 & city != 2 & city != 5 & city != 11 & city != 12 label define testrec2_L 1 "within 12 months" 2 "not within past 12 months" lab val testrec2 testrec2_L *label var "HIV Test within the past 12 months" ** create new vars uHIVinc uHIVunk ************************************************** gen uHIVinc = . replace uHIVinc = 0 if HIVnew2 == 2 & testrec2 == 1 // 1972 men (neg with HIV test in previous year) replace uHIVinc = 1 if HIVnew2 == 1 & testrec2 == 1 // 106 men (as yet undiagnosed HIV infection) replace uHIVinc = . if city == 9 // Sofia does not have test date information lab var uHIVinc "HIV negative & incident cases" label define uHIVinc_L 0 "negative with recent test" 1 "pos/incident with recent test" label val uHIVinc uHIVinc_L gen uHIVunk = . replace uHIVunk = 0 if HIVnew2 == 2 & testrec2 == 2 // 1868 men (neg without HIV test in previous year) replace uHIVunk = 1 if HIVnew2 == 1 & testrec2 == 2 //58 men (as yet undiagnosed HIV infection of unknown duration) replace uHIVunk = . if city == 9 // Sofia does not have test date information lab var uHIVunk "HIV negative & previously undiagnosed (yet not incident) cases" label define uHIVunk_L 0 "negative (but not incident)" 1 "previously undiagnosed (and not incident)" label val uHIVunk uHIVunk_L **** Tab1 tab city HIVnew2, row tab city q14 if HIVnew2 < 3, m row tab city testrec2 if HIVnew<3, row tab city uHIVinc tab city uHIVunk tab city HIVnew2 ***** Tab2 tab q31 uHIVunk, m tab q31 uHIVinc, m tab q31 HIVnew2 if city !=9, m */ *** Tab 3 and 4 for uHIV *** tab agerec10um HIVnew2, col tab q5_Rec1 HIVnew2, col tab Migration_Status HIVnew2, col tab q6bR HIVnew2, col tab q7_Recode_ULI HIVnew2, col *tab q9 HIVnew2, col *tab q10 HIVnew2, col tab q12 HIVnew2, col tab q13_total HIVnew2, col tab q13_bin HIVnew2, col tab GARPR1_13 HIVnew2, col *tab q14 HIVnew2, col tab partnumsexcat HIVnew2, col tab partnumuaicat HIVnew2, col tab partner_all HIVnew2, col *tab GARPR1_12 HIVnew2, col tab sexpract HIVnew2, col tab q26_weight HIVnew2, col tab sexrole HIVnew2, col tab serocomm HIVnew2, col tab num_drugs HIVnew2, col *tab anydrug2 HIVnew2, col tab party_2 HIVnew2, col tab chemsex HIVnew2, col tab sps HIVnew2, col tab cannabis HIVnew2, col tab alcohol HIVnew2, col tab q36R HIVnew2, col *tab concord HIVnew2, col /** city gen city_p1 = city replace city_p1 = 0 if city == 6 lab var city city_L */ gen HIVnew2_p1 = HIVnew2 replace HIVnew2_p1 = 0 if HIVnew2 == 2 label define HIVnew2_p1_L 0 "HIV-negative" 1 "undiagnosed" lab val HIVnew2_p1 HIVnew2_p1_L *logit HIVnew2_p1 i.city, or logit HIVnew2_p1 i.agerec10um, or logit HIVnew2_p1 i.q5_Rec1, or logit HIVnew2_p1 i.Migration_Status, or logit HIVnew2_p1 i.q6bR, or logit HIVnew2_p1 i.q7_Recode_ULI, or logit HIVnew2_p1 ib2.q12, or logit HIVnew2_p1 i.q13_total, or logit HIVnew2_p1 i.q13_bin, or *logit HIVnew2_p1 i.GARPR1_11, or *logit HIVnew2_p1 i.GARPR1_12, or logit HIVnew2_p1 i.GARPR1_13, or logit HIVnew2_p1 i.partnumsexcat, or logit HIVnew2_p1 i.partnumuaicat, or logit HIVnew2_p1 i.partner_all, or logit HIVnew2_p1 i.sexpract, or logit HIVnew2_p1 i.q26_weight, or logit HIVnew2_p1 i.sexrole, or logit HIVnew2_p1 i.serocomm, or logit HIVnew2_p1 i.num_drugs, or logit HIVnew2_p1 i.party_2, or logit HIVnew2_p1 i.chemsex, or logit HIVnew2_p1 i.sps, or logit HIVnew2_p1 i.cannabis, or logit HIVnew2_p1 i.alcohol, or logit HIVnew2_p1 ib1.q36R, or ******************************************* * START MODELING ******************************************* melogit HIVnew2_p1 i.agerec10um, or estimates store empty ***** add random intercept at city level melogit HIVnew2_p1 i.agerec10um || city:, or estimates store emptycity lrtest empty emptycity, stats dir force melogit HIVnew2_p1 i.agerec10um ib2.GARPR1_13 || city:, or estimates store ctq14 testparm ib2.GARPR1_13 lrtest emptycity ctq14, stats dir force melogit HIVnew2_p1 i.agerec10um ib2.GARPR1_13 i.partnumuaicat || city:, or estimates store ctq14p_uai testparm ib2.GARPR1_13 testparm i.partnumuaicat lrtest ctq14 ctq14p_uai, stats dir force melogit HIVnew2_p1 i.agerec10um ib2.GARPR1_13 i.partnumuaicat i.sps || city:, or estimates store ctq14p_uaiq30sps testparm ib2.GARPR1_13 testparm i.partnumuaicat testparm i.sps lrtest ctq14p_uai ctq14p_uaiq30sps, stats dir force * Final model** melogit HIVnew2_p1 ib1.agerec10um ib2.GARPR1_13 i.partnumuaicat i.sps ||city:, or *************************** * separate Analysis for incident undiagnosed infections (last negative HIV test within last 12 months) * and undiagnosed infection with last negative HIV test longer ago ************************************************** /* gen uHIVun2 = . replace uHIVun2 = 0 if HIVnew2 == 2 & ((q31 < 2007 | q31 ==.)& age25 == 2) // replace uHIVun2 = 1 if HIVnew2 == 1 & ((q31 < 2007 | q31 ==.)& age25 == 2) replace uHIVun2 = 1 if q32 == . & q31a == 2 & hiv_status == 3 & ((q31 < 2007 | q31 ==.)& age25 == 2) // 13 men without previous test information replace uHIVun2 = . if city == 9 // Sofia does not have test date information lab var uHIVun2 "HIV negative & previously undiagnosed (long untested) cases" label define uHIVun2_L 0 "negative (last test <2007)" 1 "previously undiagnosed (last test <2007)" label val uHIVun2 uHIVun2_L tab q31 uHIVun2, m logit uHIVun2 i.city, or logit uHIVun2 i.agerec10um, or logit uHIVun2 i.q5_Rec1, or logit uHIVun2 i.q6bR, or logit uHIVun2 i.q7_Recode_ULI, or // outness logit uHIVun2 i.q12, or *logit uHIVun2 i.GARPR1_11, or *logit uHIVun2 i.GARPR1_12, or logit uHIVun2 i.GARPR1_13, or logit uHIVun2 i.q13_total, or logit uHIVun2 i.q13_bin, or logit uHIVun2 i.partnumsexcat, or logit uHIVun2 i.partnumuaicat, or logit uHIVun2 i.sexrole, or logit uHIVun2 i.num_drugs, or logit uHIVun2 i.party_2, or logit uHIVun2 i.alcohol, or logit uHIVun2 i.cannabis, or logit uHIVun2 i.sps, or logit uHIVun2 i.chemsex, or logit uHIVun2 i.serocomm, or logit uHIVun2 i.Migration_Status, or logit uHIVun2 i.partner_all, or logit uHIVun2 i.sexpract, or logit uHIVun2 ib1.q36R, or logit uHIVun2 i.q26_weight, or melogit uHIVun2 i.agerec10um i.partnumuaicat i.q12 || city: ,or */ **** Tab 3 and 4 for uHIVinc ***** logit uHIVinc i.agerec10um, or logit uHIVinc i.q5_Rec1, or logit uHIVinc i.Migration_Status, or logit uHIVinc i.q6bR, or logit uHIVinc i.q7_Recode_ULI, or *logit uHIVinc i.q8aR, or *logit uHIVinc i.q8bR, or *logit uHIVinc i.q8cR, or logit uHIVinc ib2.q12, or *logit uHIVinc i.GARPR1_11, or *logit uHIVinc i.GARPR1_12, or logit uHIVinc i.q13_bin, or logit uHIVinc i.q13_total, or *logit uHIVinc i.GARPR1_13, or logit uHIVinc i.partnumsexcat, or logit uHIVinc i.partnumuaicat, or logit uHIVinc i.partner_all, or logit uHIVinc i.sexpract, or logit uHIVinc i.q26_weight, or logit uHIVinc i.sexrole, or logit uHIVinc i.serocomm, or logit uHIVinc i.num_drugs, or logit uHIVinc i.party_2, or logit uHIVinc i.chemsex, or logit uHIVinc i.sps, or logit uHIVinc i.cannabis, or logit uHIVinc i.alcohol, or logit uHIVinc ib1.q36R, or melogit uHIVinc i.agerec10um i.q6bR i.sexrole i.party_2 i.sps ib1.serocomm || city: ,or melogit uHIVinc i.agerec10um i.sexrole i.party_2 i.sps ib1.serocomm || city: ,or *** Tab 3 and 4 for uHIVunk ***** *logit uHIVunk i.city, or logit uHIVunk i.agerec10um, or logit uHIVunk i.q5_Rec1, or logit uHIVunk i.Migration_Status, or logit uHIVunk i.q6bR, or logit uHIVunk i.q7_Recode_ULI, or // outness logit uHIVunk ib2.q12, or *logit uHIVunk i.GARPR1_11, or *logit uHIVunk i.GARPR1_12, or *logit uHIVunk i.GARPR1_13, or logit uHIVunk i.q13_total, or logit uHIVunk i.q13_bin, or logit uHIVunk i.partnumsexcat, or logit uHIVunk i.partnumuaicat, or logit uHIVunk i.partner_all, or logit uHIVunk i.sexpract, or logit uHIVunk i.q26_weight, or logit uHIVunk i.sexrole, or logit uHIVunk i.serocomm, or logit uHIVunk i.num_drugs, or logit uHIVunk i.party_2, or logit uHIVunk i.chemsex, or logit uHIVunk i.sps, or logit uHIVunk i.cannabis, or logit uHIVunk i.alcohol, or logit uHIVunk ib1.q36R, or melogit uHIVunk i.agerec10um i.partnumuaicat ib2.q12 || city: ,or