cd "C:\Users\owen\Documents\AddHealthRaw" clear all ***IMPORT, RENAME, AND DROP MISSING VALUES FOR VARIOUS ADD HEALTH DATA SETS*** *wave 1 core survey use PC1 AID IMONTH IDAY IYEAR SCID SSCID COMMID BIO_SEX H1ED7 H1FS1 H1FS2 H1FS3 H1FS4 H1FS5 H1FS6 H1FS7 H1FS8 H1FS9 H1FS10 H1FS11 H1FS12 H1FS13 H1FS14 H1FS15 H1FS16 H1FS17 H1FS18 H1FS19 H1GI1M H1GI1Y H1GI4 H1GI6A H1GI6B H1GI6C H1GI6D H1GI6E H1GI10 H1GI18 H1GI20 H1ED6A H1ED6B H1ED6C H1ED6D H1ED6E H1ED6F H1ED9 H1HR14 H1HR15 PA2 PA12 PA55 PA56 PA57A PA57B PA57C PA57D PA57E PA57F SMP01 SMP02 SMP03 SMP04 SMP05 SMP06 SMP07 SMP08 SMP09 SMP10 SMP11 SMP12 using 27021-0001-Data-REST, clear replace BIO_SEX = . if (BIO_SEX == 6 | BIO_SEX == 8) replace H1GI1M = . if (H1GI1M == 96) rename H1GI1M BIRTH_MONTH replace H1GI1Y = . if (H1GI1Y == 96) rename H1GI1Y BIRTH_YEAR replace H1GI4 = . if (H1GI4 == 6 | H1GI4 == 8) rename H1GI4 HISPANIC replace H1GI6A = . if (H1GI6A >= 6 & H1GI6A <= 9) rename H1GI6A WHITE replace H1GI6B = . if (H1GI6B >= 6 & H1GI6B <= 9) rename H1GI6B BLACK replace H1GI6C = . if (H1GI6C >= 6 & H1GI6C <= 9) rename H1GI6C AM_INDIAN replace H1GI6D = . if (H1GI6D >= 6 & H1GI6D <= 9) rename H1GI6D ASIAN replace H1GI6E = . if (H1GI6E >= 6 & H1GI6E <= 9) rename H1GI6E OTHER_RACE replace H1GI10 = . if (H1GI10 == 6 | H1GI10 == 8) rename H1GI10 HOME_LANGUAGE replace H1GI18 = . if (H1GI18 == 6 | H1GI18 == 7 | H1GI18 == 8) rename H1GI18 IN_SCHOOL_WAVEI replace H1GI20 = . if (H1GI20 >= 96 & H1GI20 <= 99) rename H1GI20 CURRENT_GRADE_WAVEI foreach x of varlist H1ED6A H1ED6B H1ED6C H1ED6D H1ED6E H1ED6F{ replace `x' = . if (`x' >= 6 & `x' <= 9) } replace H1ED9 = . if (H1ED9 == 6 | H1ED9 == 8) rename H1ED9 BEEN_EXPELLED_WAVEI replace H1HR14 = . if (H1HR14 == 96 | H1HR14 == 98 | H1HR14 == 99) rename H1HR14 SIB_COUNT replace H1HR15 = . if (H1HR15 >= 96 & H1HR15 <= 99) rename H1HR15 BIRTH_ORDER replace PA12=. if PA12==96 rename PA12 PARENT_ED replace PA2=. if PA2==996 rename PA2 PARENT_AGE replace PA55=. if PA55==9996 rename PA55 CHILDHOOD_INCOME replace PA56 = . if (PA56 == 6) rename PA56 CHILDHOOD_PAYBILLS foreach x of varlist PA57A PA57B PA57C PA57D PA57E PA57F { replace `x' = . if (`x' == 6) } replace H1ED7 = . if (H1ED7 == 6 | H1ED7 == 8) rename H1ED7 SUSPENDED_WAVEI foreach x of numlist 1/19 { replace H1FS`x' = . if (H1FS`x' == 6 | H1FS`x' == 8 | H1FS`x' == 9) } rename PC1 RELATE_TYPE rename IMONTH IMONTH1 rename IDAY IDAY1 rename IYEAR IYEAR1 rename SCID SCID1 rename SSCID SSCID1 rename COMMID COMMID1 rename SMP09 HS rename SMP10 NR rename SMP12 SIB_OFTWINS rename SMP07 TW rename SMP08 FS save core1, replace *wave 2 core survey use AID IMONTH2 IDAY2 IYEAR2 SCID2 SSCID2 COMMID2 CORE1_2 CORE2_2 H2FS1 H2FS2 H2FS3 H2FS4 H2FS5 H2FS6 H2FS7 H2FS8 H2FS9 H2FS10 H2FS11 H2FS12 H2FS13 H2FS14 H2FS15 H2FS16 H2FS17 H2FS18 H2FS19 H2GI6 H2GI9 H2ED5 H2ED3 using 27021-0002-Data-REST, clear replace H2GI9 = . if (H2GI9 == 97) rename H2GI9 CURRENT_GRADE_WAVEII rename H2GI6 IN_SCHOOL_WAVEII replace H2ED5 = . if (H2ED5 == 7) rename H2ED5 BEEN_EXPELLED_WAVEII replace H2ED3 = . if (H2ED3 == 6 | H2ED3 == 7 | H2ED3 == 8) rename H2ED3 SUSPENDED_WAVEII replace H2FS1 = . if (H2FS1 == 6 | H2FS1 == 8) replace H2FS2 = . if (H2FS2 == 8) replace H2FS3 = . if (H2FS3 == 6 | H2FS3 == 8) replace H2FS4 = . if (H2FS4 == 8) replace H2FS5 = . if (H2FS5 == 6 | H2FS5 == 8) replace H2FS6 = . if (H2FS6 == 6 | H2FS6 == 8) replace H2FS7 = . if (H2FS7 == 8) replace H2FS8 = . if (H2FS8 == 6 | H2FS8 == 8) replace H2FS9 = . if (H2FS9 == 6 | H2FS9 == 8) replace H2FS10 = . if (H2FS10 == 8) replace H2FS11 = . if (H2FS11 == 6 | H2FS11 == 8) replace H2FS12 = . if (H2FS12 == 6 | H2FS12 == 8) replace H2FS13 = . if (H2FS13 == 6 | H2FS13 == 8) replace H2FS14 = . if (H2FS14 == 8) replace H2FS15 = . if (H2FS15 == 6 | H2FS15 == 8) replace H2FS16 = . if (H2FS16 == 6 | H2FS16 == 8) replace H2FS17 = . if (H2FS17 == 6 | H2FS17 == 8) replace H2FS18 = . if (H2FS18 == 8) replace H2FS19 = . if (H2FS19 == 6 | H2FS19 == 8) save core2, replace *wave 3 core survey use AID IMONTH3 IDAY3 IYEAR3 H3PR1 H3PR2 H3PR3 H3PR4 H3PR5 H3PR6 H3PR7 H3ED1 H3ED2 H3ED23 H3ED26 H3ED27 H3ED33 H3ID15 H3ID26F H3RA1 H3RA2 H3RA3 H3RA4 H3RA5 H3RA6 H3RA7 H3RA8 H3RA9 H3RA10 H3RA11 H3RA12 H3RA13 H3RA14 H3RA15 H3RA16 H3RA17 H3RA18 using 27021-0003-Data-REST, clear replace H3ED1 = . if (H3ED1 == 96 | H3ED1 == 98 | H3ED1 == 99) rename H3ED1 HIGH_GRADE_WAVEIII replace H3ED2 = . if (H3ED2 == 6 | H3ED2 == 9) rename H3ED2 GED_WAVEIII replace H3ED23 = . if (H3ED23 == 6 | H3ED23 == 8 | H3ED23 == 9) rename H3ED23 IN_SCHOOL_WAVEIII replace H3ED26 = . if (H3ED26 >= 7 & H3ED26 <= 9) rename H3ED26 CURRENT_SCHOOLTYPE_WAVEIII replace H3ED27 = . if (H3ED27 >= 97 & H3ED27 <= 99) rename H3ED27 CURRENT_COLLEGEYEAR_WAVEIII replace H3ED33 = . if (H3ED33 == 6 | H3ED33 == 8 | H3ED33 == 9) rename H3ED33 BEEN_EXPELLED_WAVEIII foreach x of numlist 1/18 { replace H3RA`x' = . if (H3RA`x' == 6 | H3RA`x' == 8 | H3RA`x' == 9) } foreach x of numlist 1/7 { replace H3PR`x' = . if (H3PR`x' >= 5 & H3PR`x' <= 9) } save core3, replace *wave 4 core survey use AID IMONTH4 IDAY4 IYEAR4 H4ED1 H4ED2 H4ED6 H4ID5L using 27021-0012-Data-REST, clear replace H4ED1 = . if (H4ED1 >= 6 & H4ED1 <= 8) rename H4ED1 HS_GRADSTATUS_WAVEIIII replace H4ED2 = . if (H4ED2 >= 96 & H4ED2 <= 98) rename H4ED2 HIGH_GRADE_WAVEIIII replace H4ED6 = . if (H4ED6 >= 6 & H4ED6 <= 8) rename H4ED6 INCOLLEGE_WAVEIIII save core4, replace *sibling concordance use 27023-0001-Data-REST, clear keep AID_1 FAMID rename AID_1 AID duplicates drop AID, force save sibs1, replace use 27023-0001-Data-REST, clear keep AID_2 FAMID rename AID_2 AID rename FAMID FAMID_2 duplicates drop AID, force save sibs, replace *genetic data use 27031-0001-Data-REST, clear merge 1:1 AID using sibs1 drop if _merge==2 drop _merge merge 1:1 AID using sibs2 drop if _merge==2 drop _merge replace FAMID=FAMID_2 if FAMID==. drop FAMID_2 save DNA, replace *merge data sets use core1, clear merge 1:1 AID using core2 drop _merge merge 1:1 AID using core3 drop _merge merge 1:1 AID using core4 drop _merge merge 1:1 AID using sibs drop _merge merge 1:1 AID using DNA drop _merge ***CREATE VARIABES*** *recode gender recode BIO_SEX (1=1)(2=0), gen(MALE) drop BIO_SEX *kid education. note that in wave 3 high grade variable was continuous but in wave 4 categorical. gen HS_GRAD=0 replace HS_GRAD=1 if HIGH_GRADE_WAVEIII>11 | HIGH_GRADE_WAVEIIII>2 replace HS_GRAD=. if HIGH_GRADE_WAVEIII==. & HIGH_GRADE_WAVEIIII==. gen ANY_COLLEGE=0 replace ANY_COLLEGE=1 if HIGH_GRADE_WAVEIII>12 | HIGH_GRADE_WAVEIIII>5 | INCOLLEGE_WAVEIIII==1 replace ANY_COLLEGE=. if HIGH_GRADE_WAVEIIII==. & HIGH_GRADE_WAVEIII==. replace ANY_COLLEGE=0 if HS_GRAD==0 gen COLLEGE_GRAD=0 replace COLLEGE_GRAD=1 if HIGH_GRADE_WAVEIII>15 | HIGH_GRADE_WAVEIIII>6 replace COLLEGE_GRAD=. if HIGH_GRADE_WAVEIIII==. & HIGH_GRADE_WAVEIII==. recode HIGH_GRADE_WAVEIIII (1=8)(2=10)(3 4 5=12)(6=14)(7=16)(8 12=17)(9 10 13=18)(11=20), gen(HG) gen GRADDEG=HG>=18 *family income rename CHILDHOOD_INCOME INCOME replace INCOME=INCOME*1000 gen LOG_INCOME=ln(INCOME+1) replace INCOME=INCOME/10000 gen INCOME_SQ=INCOME^2 quietly sum INCOME, detail gen MEDIAN_INCOME = (INCOME>=r(p50)) *parental education recode PARENT_ED (1=8)(2 3=10) (5=11) (4 6=12) (7=14)(8=16)(9=17)(10 11 12 96 97 98=.) gen MOM_ED=PARENT_ED replace MOM_ED=. if RELATE_TYPE>6 recode MOM_ED (12 14= 1) (nonmiss=0), gen(MOMHS) recode MOM_ED (16 17= 1) (nonmiss=0), gen(MOMCOLLEGE) *kid birth cohort egen BIRTHCOHORT=group(BIRTH_YEAR BIRTH_MONTH) *MAOA gen MAOA=0 if MALE==1 replace MAOA=1 if MALE==1 & ((MAOA_VA=="4R" | MAOA_VA=="3.5R") | (MAOA_VB=="4R" | MAOA_VB=="3.5R")) replace MAOA=. if MALE==1 & MAOA_VA=="" & MAOA_VB=="" gen MAOA_ALT=0 if MALE==1 replace MAOA_ALT=1 if MALE==1 & ((MAOA_VA=="4R" | MAOA_VA=="3.5R" | MAOA_VA=="5R") | (MAOA_VB=="4R" | MAOA_VB=="3.5R" | MAOA_VB=="5R")) replace MAOA_ALT=. if MALE==1 & MAOA_VA=="" & MAOA_VB=="" *mental health and behavior issues gen EXPELLED=BEEN_EXPELLED_WAVEI==1 | BEEN_EXPELLED_WAVEII==1 | BEEN_EXPELLED_WAVEIII==1 gen SUSPENDED=SUSPENDED_WAVEI==1 | SUSPENDED_WAVEII==1 egen ADHD=rowmean(H3RA1 H3RA2 H3RA3 H3RA4 H3RA5 H3RA6 H3RA7 H3RA8 H3RA9 H3RA10 H3RA11 H3RA12 H3RA13 H3RA14 H3RA15 H3RA16 H3RA17 H3RA18) egen AD=rowmean(H3RA1 H3RA3 H3RA5 H3RA7 H3RA9 H3RA11 H3RA13 H3RA15 H3RA17) egen HD=rowmean( H3RA2 H3RA4 H3RA6 H3RA8 H3RA10 H3RA12 H3RA14 H3RA16 H3RA18) qui sum AD, detail gen ADDUM=AD>r(p90) qui sum HD, detail gen HDDUM=HD>r(p90) qui sum ADHD, detail gen ADHDDUM=ADHD>r(p90) recode H3PR3 H3PR6 (1=0)(2=1) recode H3PR1 H3PR2 H3PR4 H3PR5 H3PR7(2=0) egen RISKPROP=rowtotal(H3PR1 H3PR3 H3PR6) gen RISKDUM=RISKPROP>=2 egen DEP_WAVEI=rowtotal(H1FS1 H1FS2 H1FS3 H1FS4 H1FS5 H1FS6 H1FS7 H1FS8 H1FS9 H1FS10 H1FS11 H1FS12 H1FS13 H1FS14 H1FS15 H1FS16 H1FS17 H1FS18 H1FS19) egen DEP_WAVEII=rowtotal(H2FS1 H2FS2 H2FS3 H2FS4 H2FS5 H2FS6 H2FS7 H2FS8 H2FS9 H2FS10 H2FS11 H2FS12 H2FS13 H2FS14 H2FS15 H2FS16 H2FS17 H2FS18 H2FS19) egen DEP_CONT=rowmean(DEP_WAVEI DEP_WAVEII) gen DEPDUM=DEP_WAVEI>=21 | DEP_WAVEII>=21 *gene income interactions local G "MAOA" local E "INCOME INCOME_SQ LOG_INCOME" foreach x of local G { foreach y of local E { gen `x'_X_`y'=`x'*`y' } } *drop females keep if MALE==1 *destring COMMID1 for school FE destring COMMID1, replace *erase intermediate data sets rm core1.dta rm core2.dta rm core3.dta rm core4.dta rm sibs.dta rm DNA.dta *save working data cd "C:\Users\owen\Documents\GxE" save working, replace ***ANALYSIS*** set more off *Table 1 use working, clear local allvars "MAOA INCOME BIRTHCOHORT PARENT_AGE HISPANIC BLACK AM_INDIAN ASIAN OTHER_RACE HOME_LANGUAGE SIB_COUNT BIRTH_ORDER" foreach x of local allvars { drop if `x'==. } tab HOME_LANGUAGE, gen(HL) rename HL1 ENGLISHATHOME g OTHERRACE=AM_INDIAN==1 | ASIAN==1 | OTHER_RACE==1 sum MAOA INCOME ANY_COLLEGE COLLEGE_GRAD HG WHITE BLACK HISPANIC OTHERRACE ENGLISHATHOME SIB_COUNT BIRTH_ORDER *Table 2 use working, clear drop if INCOME==. quietly sum INCOME, detail gen OVER_MEDIAN=. replace OVER_MEDIAN=0 if INCOMEr(p50) table MAOA OVER_MEDIAN, contents(mean ANY_COLLEGE mean COLLEGE_GRAD mean HG freq) *Table 3 *for sig tests use working, clear set matsize 800 qui tab COMMID1, gen(SFE) qui tab BIRTHCOHORT, gen(COHORTFE) qui tab PARENT_AGE, gen(PARAGEFE) qui tab HOME_LANGUAGE, gen(HOMELANG) local outcomes " ANY_COLLEGE COLLEGE_GRAD HG" local controls "COHORTFE* PARAGEFE* SFE* HISPANIC BLACK AM_INDIAN ASIAN OTHER_RACE HOMELANG* SIB_COUNT BIRTH_ORDER" foreach x of local outcomes { quietly reg `x' LOG_INCOME `controls' if MAOA==0 est store `x'no quietly reg `x' LOG_INCOME `controls' if MAOA==1 est store `x'yes quietly suest `x'no `x'yes, vce(cluster COMMID1) test [`x'no_mean=`x'yes_mean] :LOG_INCOME scalar `x'pval=r(p) } *actual regs use working, clear bysort COMMID1: egen k=seq() xtset COMMID1 k local outcomes "ANY_COLLEGE COLLEGE_GRAD HG" local controls "i.BIRTHCOHORT i.PARENT_AGE HISPANIC BLACK AM_INDIAN ASIAN OTHER_RACE i.HOME_LANGUAGE SIB_COUNT BIRTH_ORDER" foreach x of local outcomes { quietly xtreg `x' LOG_INCOME `controls' if MAOA==0, fe vce(cluster COMMID1) est store `x'no quietly xtreg `x' LOG_INCOME `controls' if MAOA==1, fe vce(cluster COMMID1) est store `x'yes } outreg2 [*] using TABLE3, keep(LOG_INCOME) nocons dec(3) addstat(acpval, ANY_COLLEGEpval, cgpval, COLLEGE_GRADpval, hgpval, HGpval) replace drop _est* *Table 4 use working, clear bysort COMMID1: egen k=seq() xtset COMMID1 k local outcomes "HG" local controls "i.BIRTHCOHORT i.PARENT_AGE HISPANIC BLACK AM_INDIAN ASIAN OTHER_RACE i.HOME_LANGUAGE SIB_COUNT BIRTH_ORDER" foreach x of local outcomes { *full quietly xtreg HG LOG_INCOME `controls' if MAOA==0, fe vce(cluster COMMID1) est store FULLno quietly xtreg HG LOG_INCOME `controls' if MAOA==1, fe vce(cluster COMMID1) est store FULLyes *bivariate quietly reg HG LOG_INCOME i.BIRTHCOHORT i.PARENT_AGE if MAOA==0, cluster(COMMID1) est store BVno quietly reg HG LOG_INCOME i.BIRTHCOHORT i.PARENT_AGE if MAOA==1, cluster(COMMID1) est store BVyes *linear quietly xtreg HG INCOME `controls' if MAOA==0, fe vce(cluster COMMID1) est store LINno quietly xtreg HG INCOME `controls' if MAOA==1, fe vce(cluster COMMID1) est store LINyes *quadratic quietly xtreg HG INCOME INCOME_SQ `controls' if MAOA==0, fe vce(cluster COMMID1) est store QUADno quietly xtreg HG INCOME INCOME_SQ `controls' if MAOA==1, fe vce(cluster COMMID1) est store QUADyes *white quietly xtreg HG LOG_INCOME i.BIRTHCOHORT i.PARENT_AGE i.HOME_LANGUAGE SIB_COUNT BIRTH_ORDER MOM_ED if MAOA==0 & WHITE==1, fe vce(cluster COMMID1) est store WHITEno quietly xtreg HG LOG_INCOME i.BIRTHCOHORT i.PARENT_AGE i.HOME_LANGUAGE SIB_COUNT BIRTH_ORDER MOM_ED if MAOA==1 & WHITE==1, fe vce(cluster COMMID1) est store WHITEyes *high school quietly xtreg HS_GRAD LOG_INCOME `controls' if MAOA==0, fe vce(cluster COMMID1) est store HSno quietly xtreg HS_GRAD LOG_INCOME `controls' if MAOA==1, fe vce(cluster COMMID1) est store HSyes *post bac quietly xtreg GRADDEG LOG_INCOME `controls' if MAOA==0, fe vce(cluster COMMID1) est store GRADDEGno quietly xtreg GRADDEG LOG_INCOME `controls' if MAOA==1, fe vce(cluster COMMID1) est store GRADDEGyes *other MAOA def quietly xtreg HG LOG_INCOME `controls' if MAOA_ALT==0, fe vce(cluster COMMID1) est store ALTMAOAno quietly xtreg HG LOG_INCOME `controls' if MAOA_ALT==1, fe vce(cluster COMMID1) est store ALTMAOAyes } outreg2 [*] using TABLE4, keep(LOG_INCOME INCOME INCOME_SQ) nocons dec(3) replace estimates drop * *Figure 1, Table 5 Figure A1 *first restrict data set that only cointains MAOA varying sib pairs use working, clear drop if HS==1 | NR==1 | MAOA==. egen FAM=group(FAMID INCOME) drop if FAM==. duplicates tag FAM, gen(singles) drop if singles==0 duplicates tag FAM MAOA, gen(duptag) keep if duptag==0 | (duptag==1 & singles==2) sort FAM MAOA bysort FAM: egen k=seq() order FAM k MAOA xtset FAM k *Figure 1 local vars "MAOA ANY_COLLEGE COLLEGE_GRAD HG BIRTHCOHORT BIRTH_ORDER" foreach x of local vars { gen `x'_DIFF=D.`x' } twoway scatter HG_DIFF LOG_INCOME, msize(small) || lfitci HG_DIFF LOG_INCOME, ciplot(rline) lpatter(dash) lcolor(gs8) || lfit HG_DIFF LOG_INCOME, lcolor(black) lwidth(medthick) xtitle(Log Household Income During Childhood) legend(off) xlabel(8(1)11) ylabel(-4(1)4) saving(Fig1, replace) ytitle(Sibling Difference in Years) graphregion(ifcolor(gs15) fcolor(gs15) lcolor(gs15) icolor(gs15)) *Table 5 bysort FAM: egen MISSHG=count(HG) recode MISSHG (2 3=0) local FEcontrols "i.BIRTHCOHORT i.BIRTH_ORDER" local BASEcontrols "i.COMMID1 i.BIRTHCOHORT i.PARENT_AGE HISPANIC BLACK AM_INDIAN ASIAN OTHER_RACE i.HOME_LANGUAGE SIB_COUNT BIRTH_ORDER" quietly xtreg ANY_COLLEGE LOG_INCOME MAOA MAOA_X_LOG_INCOME `FEcontrols', fe vce(cluster FAM) est store FEANY_COLLEGE quietly reg ANY_COLLEGE LOG_INCOME MAOA MAOA_X_LOG_INCOME `BASEcontrols', cluster(FAM) est store BASEANY_COLLEGE quietly xtreg COLLEGE_GRAD LOG_INCOME MAOA MAOA_X_LOG_INCOME `FEcontrols', fe vce(cluster FAM) est store FECOLLEGE_GRAD quietly reg COLLEGE_GRAD LOG_INCOME MAOA MAOA_X_LOG_INCOME `BASEcontrols', cluster(FAM) est store BASECOLLEGE_GRAD quietly xtreg HG LOG_INCOME MAOA MAOA_X_LOG_INCOME `FEcontrols' if MISSHG==0, fe vce(cluster FAM) est store FEHG quietly reg HG LOG_INCOME MAOA MAOA_X_LOG_INCOME `BASEcontrols' if MISSHG==0, cluster(FAM) est store BASEHG outreg2 [*] using TABLE5, keep(LOG_INCOME MAOA MAOA_X_LOG_INCOME) nocons dec(3) replace drop _est* *Figure A1 drop if _n==18 twoway scatter HG_DIFF LOG_INCOME if LOG_INCOME>=8.9, msize(small) || lfitci HG_DIFF LOG_INCOME if LOG_INCOME>=8.9, ciplot(rline) lpatter(dash) lcolor(gs8) || lfit HG_DIFF LOG_INCOME, lcolor(black) lwidth(medthick) xtitle(Log Household Income During Childhood) legend(off) xlabel(9(1)11) ylabel(-4(1)4) saving(Fig1Appendix, replace) ytitle(Sibling Difference in Years) graphregion(ifcolor(gs15) fcolor(gs15) lcolor(gs15) icolor(gs15)) *Table 6 use working, clear bysort COMMID1: egen k=seq() xtset COMMID1 k local outcomes "ANY_COLLEGE COLLEGE_GRAD HG" local controls "i.BIRTHCOHORT i.PARENT_AGE HISPANIC BLACK AM_INDIAN ASIAN OTHER_RACE i.HOME_LANGUAGE SIB_COUNT BIRTH_ORDER" foreach x of local outcomes { quietly xtreg `x' MOMHS MOMCOLLEGE `controls' if MAOA==0, fe vce(cluster COMMID1) est store E`x'n quietly xtreg `x' MOMHS MOMCOLLEGE `controls' if MAOA==1, fe vce(cluster COMMID1) est store E`x'y quietly xtreg `x' LOG_INCOME MOMHS MOMCOLLEGE `controls' if MAOA==0, fe vce(cluster COMMID1) est store B`x'n quietly xtreg `x' LOG_INCOME MOMHS MOMCOLLEGE `controls' if MAOA==1, fe vce(cluster COMMID1) est store B`x'y } outreg2 [*] using TABLE6, keep(LOG_INCOME MOMHS MOMCOLLEGE) nocons dec(3) replace drop _est* *Table 7 use working, clear bysort COMMID1: egen k=seq() xtset COMMID1 k local psych "SUSPENDED ADHD DEPDUM RISKPROP SUSPENDED_X_LOG_INCOME ADHD_X_LOG_INCOME DEPDUM_X_LOG_INCOME RISKPROP_X_LOG_INCOME" local MHB "SUSPENDED ADHD DEPDUM RISKPROP" local controls "i.BIRTHCOHORT i.PARENT_AGE HISPANIC BLACK AM_INDIAN ASIAN OTHER_RACE i.HOME_LANGUAGE SIB_COUNT BIRTH_ORDER MOM_ED" foreach y of local MHB { quietly xtreg `y' MAOA_X_LOG_INCOME LOG_INCOME MAOA `controls', fe vce(cluster COMMID1) est store `y' } outreg2 [*] using TABLE7, keep(MAOA_X_LOG_INCOME LOG_INCOME MAOA) nocons dec(3) replace drop _est* *Table A1 use working, clear set matsize 800 set emptycells drop local controls_simp "i.COMMID1 i.BIRTHCOHORT i.PARENT_AGE HISPANIC BLACK AM_INDIAN ASIAN OTHER_RACE i.HOME_LANGUAGE SIB_COUNT BIRTH_ORDER" local controls "c.LOG_INCOME##COMMID1 MAOA##COMMID1 c.LOG_INCOME##BIRTHCOHORT MAOA##BIRTHCOHORT c.LOG_INCOME##c.PARENT_AGE MAOA##c.PARENT_AGE c.LOG_INCOME##HISPANIC MAOA##HISPANIC c.LOG_INCOME##BLACK MAOA##BLACK c.LOG_INCOME##AM_INDIAN MAOA##AM_INDIAN c.LOG_INCOME##ASIAN MAOA##ASIAN c.LOG_INCOME##OTHER_RACE MAOA##OTHER_RACE c.LOG_INCOME##HOME_LANGUAGE MAOA##HOME_LANGUAGE c.LOG_INCOME##c.SIB_COUNT MAOA##c.SIB_COUNT c.LOG_INCOME##c.BIRTH_ORDER MAOA##c.BIRTH_ORDER" local outcomes "ANY_COLLEGE COLLEGE_GRAD HG" foreach x of local outcomes { quietly reg `x' LOG_INCOME MAOA MAOA_X_LOG_INCOME `controls_simp', cluster(COMMID1) est store Simp`x' quietly reg `x' LOG_INCOME MAOA MAOA_X_LOG_INCOME `controls', cluster(COMMID1) est store `x' quietly reg `x' LOG_INCOME MAOA MAOA_X_LOG_INCOME `controls_simp', cluster(COMMID1) est store Simp`x' quietly reg `x' LOG_INCOME MAOA MAOA_X_LOG_INCOME `controls', cluster(COMMID1) est store `x' quietly reg `x' LOG_INCOME MAOA MAOA_X_LOG_INCOME `controls_simp', cluster(COMMID1) est store Simp`x' quietly reg `x' MAOA_X_LOG_INCOME `controls', cluster(COMMID1) est store `x' } outreg2 [*] using TABLEA1, keep(LOG_INCOME MAOA 1.MAOA MAOA_X_LOG_INCOME) nocons dec(3) replace drop _est* *Table A2, mom ed with minimal controls use working, clear local outcomes "ANY_COLLEGE COLLEGE_GRAD HG" local controls "i.BIRTHCOHORT i.PARENT_AGE" foreach x of local outcomes { quietly reg `x' MOMHS MOMCOLLEGE `controls' if MAOA==0, robust est store E`x'n quietly reg `x' MOMHS MOMCOLLEGE `controls' if MAOA==1, robust est store E`x'y quietly reg `x' LOG_INCOME MOMHS MOMCOLLEGE `controls' if MAOA==0, robust est store B`x'n quietly reg `x' LOG_INCOME MOMHS MOMCOLLEGE `controls' if MAOA==1, robust est store B`x'y } outreg2 [*] using TABLEA2, keep(LOG_INCOME MOMHS MOMCOLLEGE) nocons dec(3) replace drop _est* *Table A3, FE with maternal ed use working, clear drop if HS==1 | NR==1 | MAOA==. egen FAM=group(FAMID INCOME) drop if FAM==. duplicates tag FAM, gen(singles) drop if singles==0 duplicates tag FAM MAOA, gen(duptag) keep if duptag==0 | (duptag==1 & singles==2) sort FAM MAOA bysort FAM: egen k=seq() order FAM k MAOA xtset FAM k g MAOA_MOMHS=MAOA*MOMHS g MAOA_MOMCOL=MAOA*MOMCOLLEGE bysort FAM: egen MISSHG=count(HG) recode MISSHG (2 3=0) local FEcontrols "i.BIRTHCOHORT i.BIRTH_ORDER" local BASEcontrols "i.COMMID1 i.BIRTHCOHORT i.PARENT_AGE HISPANIC BLACK AM_INDIAN ASIAN OTHER_RACE i.HOME_LANGUAGE SIB_COUNT BIRTH_ORDER" quietly xtreg ANY_COLLEGE MAOA MOMHS MOMCOLLEGE MAOA_MOMHS MAOA_MOMCOL `FEcontrols', fe vce(cluster FAM) est store FEANY_COLLEGE quietly reg ANY_COLLEGE MAOA MOMHS MOMCOLLEGE MAOA_MOMHS MAOA_MOMCOL `BASEcontrols', cluster(FAM) est store BASEANY_COLLEGE quietly xtreg COLLEGE_GRAD MAOA MOMHS MOMCOLLEGE MAOA_MOMHS MAOA_MOMCOL `FEcontrols', fe vce(cluster FAM) est store FECOLLEGE_GRAD quietly reg COLLEGE_GRAD MAOA MOMHS MOMCOLLEGE MAOA_MOMHS MAOA_MOMCOL `BASEcontrols', cluster(FAM) est store BASECOLLEGE_GRAD quietly xtreg HG MAOA MOMHS MOMCOLLEGE MAOA_MOMHS MAOA_MOMCOL `FEcontrols' if MISSHG==0, fe vce(cluster FAM) est store FEHG quietly reg HG MAOA MOMHS MOMCOLLEGE MAOA_MOMHS MAOA_MOMCOL `BASEcontrols' if MISSHG==0, cluster(FAM) est store BASEHG outreg2 [*] using TABLEA3, keep(MAOA MOMHS MOMCOLLEGE MAOA_MOMHS MAOA_MOMCOL) nocons dec(3) replace drop _est*