set more off clear quietly infix /// byte age 89-90 /// byte restatus 138 /// byte mrachis 149 /// byte meduc 155 /// byte bthorder 212 /// byte pcarerec 247 /// byte cig_1 284-285 /// byte cig_2 286-287 /// byte cig_3 288-289 /// byte payr 413 /// byte dplural 423 /// byte FLGND 868 /// using "VS13LINK.USNUMPUB" gen death=1 save "num.dta", replace set more off clear quietly infix /// byte age 89-90 /// byte restatus 138 /// byte mrachis 149 /// byte meduc 155 /// byte bthorder 212 /// byte pcarerec 247 /// byte cig_1 284-285 /// byte cig_2 286-287 /// byte cig_3 288-289 /// byte payr 413 /// byte dplural 423 /// byte FLGND 868 /// using "VS13LINK.USDENPUB" drop if FLGND==1 /* record in both files, so drop birth */ drop if restatus == 4 /* foreign residents */ drop if cig_1 == . /* this gets the Ns the same for all vars */ gen death=0 append using "num.dta" recode meduc (1 2 3 = 1) (4 5 = 2) (6 7 8 = 3) (9 . = 9) recode mrachis (1 = 3) (2/5 = 4) (6 = 1) (7 = 2) (8 9 = 5) drop if mrachis>3 /* wh bl mex only */ recode dplural (2/5 = 2) recode age (0/17 = 17) (43/50 = 43), gen(agecap) recode bthorder (5/8 = 5) (9 = 9), gen(bordercap) *egen agecat = cut(age), at(12,18,25,30,35,40,50) recode age (12/17=1) (18/24=2) (25/29=3) (30/34=4) (35/39=5) (40/50=6), gen(agecat) label define ac_lbl 1 "12-17" label define ac_lbl 2 "18-24", add label define ac_lbl 3 "25-29", add label define ac_lbl 4 "30-34", add label define ac_lbl 5 "35-39", add label define ac_lbl 6 "40+", add label values agecat ac_lbl gen smoke = 0 replace smoke=1 if cig_1>0 | cig_2>0 | cig_3>0 replace smoke=2 if cig_1==99 & cig_2 == 99 & cig_3 == 99 label define pl_lbl 1 "Single birth" label define pl_lbl 2 "Plurality 2+", add label values dplural pl_lbl label define s_lbl 0 "No smoking" label define s_lbl 1 "Smoking", add label define s_lbl 2 "Unknown/NR", add label values smoke s_lbl label define bolbl 1 "first" label define bolbl 2 "second", add label define bolbl 3 "third", add label define bolbl 4 "fourth", add label define bolbl 5 "fifth+", add label define bolbl 9 "Unknown", add label values bordercap bolbl label define pclbl 1 "first" label define pclbl 2 "second", add label define pclbl 3 "third", add label define pclbl 4 "none", add label define pclbl 5 "Unknown", add label values pcarerec pclbl label define educ_lbl 1 "HS or less" label define educ_lbl 2 "Some college", add label define educ_lbl 3 "BA or more", add label define educ_lbl 9 "Unknown", add label values meduc educ_lbl label define r_lbl 1 "White NH" label define r_lbl 2 "Black NH", add label define r_lbl 3 "Mexican", add label define r_lbl 4 "Other Hisp", add label define r_lbl 5 "Other", add label values mrachis r_lbl label define r_pay 1 "Medicaid" label define r_pay 2 "Private", add label define r_pay 3 "Self pay", add label define r_pay 4 "Other", add label define r_pay 5 "Unknown", add label values payr r_pay bysort mrachis: tab2 agecat death bysort mrachis: tab2 dplural death bysort mrachis: tab2 bordercap death bysort mrachis: tab2 meduc death bysort mrachis: tab2 pcarerec death bysort mrachis: tab2 payr death bysort mrachis: tab2 smoke death /* unadjusted */ logistic death ib3.agecat if mrachis==1 margins i.agecat marginsplot, saving("uwhite.gph", replace) logistic death ib3.agecat if mrachis==2 margins i.agecat marginsplot, saving("ublack.gph", replace) logistic death ib3.agecat if mrachis==3 margins i.agecat marginsplot, saving("umex.gph", replace) /* final models: magins to predict at means for each group */ logistic death ib3.agecat i.dplural i.bordercap i.meduc i.pcarerec i.payr i.smoke if mrachis==1 margins i.agecat, atmeans marginsplot, saving("mwhite.gph", replace) logistic death ib3.agecat i.dplural i.bordercap i.meduc i.pcarerec i.payr i.smoke if mrachis==2 margins i.agecat, atmeans marginsplot, saving("mblack.gph", replace) logistic death ib3.agecat i.dplural i.bordercap i.meduc i.pcarerec i.payr i.smoke if mrachis==3 margins i.agecat, atmeans marginsplot, saving("mmexican.gph", replace) /* then I used the gr combine command with a bunch of options to make Fig 2 */ /* linear test for black */ logistic death c.age##c.age i.dplural i.bordercap i.meduc i.pcarerec i.payr i.smoke if mrachis==2 margins, at(age=(14(4)42))