clear pause off set more off set mem 400m set matsize 800 * log using results.txt, text replace cd "C:\Documents and Settings\jwolfers\My Documents\Justin@Wharton\Female CEOs\Final - JEEA" use female employees market bm pe betav sample endfemale ceoname naics cusip year date dt becamece leftofc ret sz mktrf smb hml umd nasdum sp500 size price totalvol yld ret23 ret46 ret712 ffind using JEEAData, clear save FemaleCEOsData, replace use FemaleCEOsData, clear * Table 1: Summary stats gen male=1-female summ market employees bm pe betav [aw=female] if sample==1, det summ market employees bm pe betav [aw=1-female] if sample==1, det gen ind=substr(naics,1,2) destring ind, replace sort cusip year by cusip: replace ind=ind[_n-1] if ind==. replace ind=31 if ind==32 | ind==33 replace ind=48 if ind==49 replace ind=44 if ind==45 gen sicdiv=. for X in any 11 21 23 31 32 33 22 48 49 42 44 45 72 52 53 51 54 56 61 62 71 81 92 \ Y in num 1 2 3 4 4 4 5 5 5 6 7 7 7 8 8 9 9 9 9 9 9 9 10: replace sicdiv=Y if ind==X /*Source: http://www.census.gov/epcd/www/naicsect.htm*/ label define sicdiv 1 "Agriculture" 2 "Mining" 3 "Construction" 4 "Manufacturing" 5 "Transport etc." 6 "Wholesale" 7 "Retail" 8 "Finance" 9 "Services" 10 "Public Admin.", modify label value sicdiv sicdiv label define naics 11 "Agriculture" 21 "Mining" 23 "Construction" 31 "Manufacturing" 32 "Manufacturing" 33 "Manufacturing" 22 "Utilities" 48 "Transport" 49 "Transport" 42 "Wholesale Trade" 44 "Retail Trade" 45 "Retail Trade" 72 "Accommodation & Food Services" 52 "Finance & Insurance" 53 "Real Estate" 51 "Information" 54 "Professional Services" 56 "Administrative Support" 61 "Education" 62 "Health Care" 71 "Arts, Entertainment & Recreation" 81 "Other Services" 92 "Public Administration", modify label value ind naics tab ind [aw=female] if sample==1 tab ind [aw=1-female] if sample==1 egen ceosbyind=nvals(ceoname), by(ind endfemale) table ind endfemale, c(m ceosbyind) gen tenure=(date-becamece)/365.24 summ tenure [aw=endfemale] if sample==1, det summ tenure [aw=1-endfemale] if sample==1, det gen appointed=becamece format appointed %d summ appointed [aw=endfemale] if sample==1, det summ appointed [aw=1-endfemale] if sample==1, det for any f10 f50 f90 m10 m50 m90 \ Y in num 11688 12950 15182 11688 12023 14671: gen X=Y \ format X %d \ list X if _n==1 summ female if sample==1 * Figure 1 egen summale=sum(male) if sample==1, by(date) egen sumfemale=sum(female) if sample==1, by(date) egen tagdate=tag(date) if sample==1 twoway (line sumfemale date if tagdate==1, sort lcolor(magenta) lwidth(medthick)), ytitle(Number of Female CEOs) ylabel(, angle(horizontal)) xtitle("") xlabel( 12053 12418 12782 13146 13514 13879 14244 14609 14973 15340 15705 16070 16436, angle(forty_five) format(%dm_Y)) title("Women") xsize(10) ysize(7.5) name(female, replace) twoway (line summale date if tagdate==1, sort lcolor(blue) lwidth(medthick)), ytitle(Number of Male CEOs) ylabel(, angle(horizontal)) xtitle("") xlabel( 12053 12418 12782 13146 13514 13879 14244 14609 14973 15340 15705 16070 16436, angle(forty_five) format(%dm_Y)) title("Men") xsize(10) ysize(7.5) name(male, replace) graph combine female male, xcommon title(CEO Gender Through Time: Execucomp Sample) xsize(10) ysize(7.5) twoway (line sumfemale date if tagdate==1, sort lcolor(black) lwidth(medthick)), ytitle(Number of Female CEOs) ylabel(, angle(horizontal)) xtitle("") xlabel( 12053 12418 12782 13146 13514 13879 14244 14609 14973 15340 15705 16070 16436, angle(forty_five) format(%dm_Y)) title("Women") xsize(10) ysize(7.5) scheme(s2mono) graphregion(fcolor(white) lcolor(white)) name(female, replace) twoway (line summale date if tagdate==1, sort lcolor(black) lwidth(medthick)), ytitle(Number of Male CEOs) ylabel(, angle(horizontal)) xtitle("") xlabel( 12053 12418 12782 13146 13514 13879 14244 14609 14973 15340 15705 16070 16436, angle(forty_five) format(%dm_Y)) title("Men") xsize(10) ysize(7.5) name(male, replace) scheme(s2mono) graphregion(fcolor(white) lcolor(white)) graph combine female male, xcommon title(CEO Gender Through Time: Execucomp Sample) xsize(10) ysize(7.5) scheme(s2mono) graphregion(fcolor(white) lcolor(white)) * Table 2: Portfolio method gen rh=. gen rhs=. egen dateid=group(date) if sample==1 for num 1/156: qui reg ret female if dateid==X & sample==1 \ predict hat \ replace rh=hat if dateid==X \ qui reg ret female if dateid==X & sample==1 [w=sz] \ predict hats \ replace rhs=hats if dateid==X \ drop hat hats egen fewret=mean(rh) if female==1, by(date) egen mewret=mean(rh) if female==0, by(date) egen fvwret=mean(rhs) if female==1, by(date) egen mvwret=mean(rhs) if female==0, by(date) gen n=_n sort date n for var fewret mewret mvwret fvwret: by date: replace X=X[_n-1] if X==. gsort date -n for var fewret mewret mvwret fvwret: by date: replace X=X[_n-1] if X==. gen diffewret=fewret-mewret gen diffvwret=fvwret-mvwret egen portfoliotag=tag(date) if sample==1 reg diffvwret if portfoliotag==1 reg diffvwret mktrf if portfoliotag==1 reg diffvwret mktrf smb hml if portfoliotag==1 reg diffvwret mktrf smb hml umd if portfoliotag==1 reg diffewret if portfoliotag==1 reg diffewret mktrf if portfoliotag==1 reg diffewret mktrf smb hml if portfoliotag==1 reg diffewret mktrf smb hml umd if portfoliotag==1 * Fama-Macbeth regression gen res=. program drop _all program define fm syntax varlist (min=1 numeric) matrix drop _all replace res=. forvalues i=0/155 { qui reg y `varlist' if sample==1 & dt==`i' qui predict temp, res qui replace res=temp if sample==1 & dt==`i' drop temp mat b=nullmat(b)\e(b) mat se=nullmat(vecdiag(e(V)))\vecdiag(e(V)) } local k=colsof(b) mat coeffs=b'*J(rowsof(b),1,1)/rowsof(b) /*Takes the mean*/ mat m=I(rowsof(b))-J(rowsof(b),1,1)*J(1,rowsof(b),1)/rowsof(b) mat sdcoeffs=vecdiag((m*b)'*m*b)/(rowsof(b)-1) forvalues i=1/`k' { mat sdcoeffs[1,`i']=sqrt(sdcoeffs[1,`i']) } mat sdcoeffs=sdcoeffs/sqrt(rowsof(b)) mat result=(coeffs,sdcoeffs') mat colnames result= coefficient se matlist result end program define fmwt syntax varlist (min=1 numeric) matrix drop _all replace res=. forvalues i=0/155 { qui reg y `varlist' if sample==1 & dt==`i' [w=sz] qui predict temp, res qui replace res=temp if sample==1 & dt==`i' drop temp mat b=nullmat(b)\e(b) mat se=nullmat(vecdiag(e(V)))\vecdiag(e(V)) } local k=colsof(b) mat coeffs=b'*J(rowsof(b),1,1)/rowsof(b) /*Takes the mean*/ mat m=I(rowsof(b))-J(rowsof(b),1,1)*J(1,rowsof(b),1)/rowsof(b) mat sdcoeffs=vecdiag((m*b)'*m*b)/(rowsof(b)-1) forvalues i=1/`k' { mat sdcoeffs[1,`i']=sqrt(sdcoeffs[1,`i']) } mat sdcoeffs=sdcoeffs/sqrt(rowsof(b)) mat result=(coeffs,sdcoeffs') mat colnames result= coefficient se matlist result end gen y=ret if sample==1 gen tenure4=(date>=becamece & date<=leftofc & date<=becamece+4*366) gen female4=female*tenure4 fmwt female matlist b fmwt female female4 tenure4 fmwt female female4 tenure4 nasdum sp500 bm size price totalvol yld ret23 ret46 ret712 fm female fm female female4 tenure4 fm female female4 tenure4 nasdum sp500 bm size price totalvol yld ret23 ret46 ret712 format date %d list date fewret mewret fvwret mvwret sample if portfoliotag==1, clean * Table 4: Matching on 49 industries and size sort sample date ffind sz by sample date ffind: gen retpl=ret[_n+1] if endfemale==1 by sample date ffind: gen retng=ret[_n-1] if endfemale==1 by sample date ffind: gen sizepl=sz[_n+1] if endfemale==1 by sample date ffind: gen sizeng=sz[_n-1] if endfemale==1 gen retmatch1=retpl if abs(sizepl-sz)bm/2 replace bmq=. if sample~=1 | bm==. sort sample date ffind bmq size by sample date ffind bmq: gen retpl=ret[_n+1] if endfemale==1 by sample date ffind bmq: gen retng=ret[_n-1] if endfemale==1 by sample date ffind bmq: gen sizepl=sz[_n+1] if endfemale==1 by sample date ffind bmq: gen sizeng=sz[_n-1] if endfemale==1 gen retmatch3=retpl if abs(sizepl-sz)