log using bankgov, replace set matsize 500 use bankgov_web.dta, clear ************************************************** *** *** *** Summary statistics *** *** *** ************************************************** summ q q1 control cf multi widely1 family1 state1 fin1 corp1 other1 srights officialindex restrict supindep res_cap bmoralhazard size ntloangr ntloangr1 totastgr totastgr1 totrevgr totrevgr1 pwcorr q q1 control cf multi widely1 family1 state1 fin1 corp1 other1 srights officialindex restrict supindep res_cap bmoralhazard size ntloangr ntloangr1 totastgr totastgr1 totrevgr totrevgr1, sig star(.05) preserve collapse srights officialindex restrict supindep res_cap, by(ctyname) summ srights officialindex restrict supindep res_cap restore tabstat srights officialindex restrict supindep res_cap bmoralhazard q q1, stats(median) by(ctyname) * z-test of medians * ** shareholder rights ** * Median of srights is 3 * gen srights_h=0 replace srights_h=1 if srights>3 tabstat srights q q1, stats(median n) by(srights_h) ranksum srights, by(srights_h) ranksum q, by(srights_h) ranksum q1, by(srights_h) ** officialindex ** * Median of officialindex is 10 * gen official_h=0 replace official_h=1 if officialindex>10 tabstat officialindex q q1, stats(median n) by(official_h) ranksum officialindex, by(official_h) ranksum q, by(official_h) ranksum q1, by(official_h) ** restrict ** * Median of restrict is 9 * gen restrict_h=0 replace restrict_h=1 if restrict>9 tabstat restrict q q1, stats(median n) by(restrict_h) ranksum restrict, by(restrict_h) ranksum q, by(restrict_h) ranksum q1, by(restrict_h) ** supindep ** * Median of supindep is 2 * gen supindep_h=0 replace supindep_h=1 if supindep>2 tabstat supindep q q1, stats(median n) by(supindep_h) ranksum supindep, by(supindep_h) ranksum q, by(supindep_h) ranksum q1, by(supindep_h) ** res_cap ** * Median of res_cap is 3 * gen res_cap_h=0 replace res_cap_h=1 if res_cap>3 tabstat res_cap q q1, stats(median n) by(res_cap_h) ranksum res_cap, by(res_cap_h) ranksum q, by(res_cap_h) ranksum q1, by(res_cap_h) ** Control - 10% cutoff ** tabstat widely1 family1 state1 fin1 corp1 other1, stats(mean) by(ctyname) * t-test of means * ** shareholder rights ** tabstat widely1 family1 state1 fin1 corp1 other1, stats(mean n) by(srights_h) ttest widely1, by(srights_h) unequal ttest family1, by(srights_h) unequal ttest state1, by(srights_h) unequal ttest fin1, by(srights_h) unequal ttest corp1, by(srights_h) unequal ttest other1, by(srights_h) unequal ** official supervisory power ** tabstat widely1 family1 state1 fin1 corp1 other1, stats(mean n) by(official_h) ttest widely1, by(official_h) unequal ttest family1, by(official_h) unequal ttest state1, by(official_h) unequal ttest fin1, by(official_h) unequal ttest corp1, by(official_h) unequal ttest other1, by(official_h) unequal ** restrict ** tabstat widely1 family1 state1 fin1 corp1 other1, stats(mean n) by(restrict_h) ttest widely1, by(restrict_h) unequal ttest family1, by(restrict_h) unequal ttest state1, by(restrict_h) unequal ttest fin1, by(restrict_h) unequal ttest corp1, by(restrict_h) unequal ttest other1, by(restrict_h) unequal ** supindep ** tabstat widely1 family1 state1 fin1 corp1 other1, stats(mean n) by(supindep_h) ttest widely1, by(supindep_h) unequal ttest family1, by(supindep_h) unequal ttest state1, by(supindep_h) unequal ttest fin1, by(supindep_h) unequal ttest corp1, by(supindep_h) unequal ttest other1, by(supindep_h) unequal ** res_cap ** tabstat widely1 family1 state1 fin1 corp1 other1, stats(mean n) by(res_cap_h) ttest widely1, by(res_cap_h) unequal ttest family1, by(res_cap_h) unequal ttest state1, by(res_cap_h) unequal ttest fin1, by(res_cap_h) unequal ttest corp1, by(res_cap_h) unequal ttest other1, by(res_cap_h) unequal ** Control - 20% cutoff ** tabstat widely1_20 family1_20 state1_20 fin1_20 corp1_20 other1_20, stats(mean) by(ctyname) tabstat control cf multi, stats(mean n) by(ctyname) * t-test of means * ** shareholder rights ** tabstat control cf multi, stats(mean n) by(srights_h) ttest control, by(srights_h) unequal ttest cf, by(srights_h) unequal ttest multi, by(srights_h) unequal ** official supervisory power ** tabstat control cf multi, stats(mean n) by(official_h) ttest control, by(official_h) unequal ttest cf, by(official_h) unequal ttest multi, by(official_h) unequal ** restrict ** tabstat control cf multi, stats(mean n) by(restrict_h) ttest control, by(restrict_h) unequal ttest cf, by(restrict_h) unequal ttest multi, by(restrict_h) unequal ** supindep ** tabstat control cf multi, stats(mean n) by(supindep_h) ttest control, by(supindep_h) unequal ttest cf, by(supindep_h) unequal ttest multi, by(supindep_h) unequal ** res_cap ** tabstat control cf multi, stats(mean n) by(res_cap_h) ttest control, by(res_cap_h) unequal ttest cf, by(res_cap_h) unequal ttest multi, by(res_cap_h) unequal **************************************************************** *** *** *** Table 5 *** *** Investor protection and valuation of banks *** *** *** **************************************************************** * OLS * reg q ntloangr srights cf cf_srights , robust outreg using out0.doc, nolabel coefastr se 3aster replace reg q ntloangr state1 srights cf cf_srights , robust outreg using out0.doc, nolabel coefastr se 3aster append * Random country effects * xtreg q ntloangr srights cf cf_srights, re outreg using out0.doc, nolabel coefastr se 3aster append * Breusch and Pagan (1980) Lagrange multiplier test of the null hypothesis that errors are independent within countries * xttest0 xtreg q ntloangr state1 srights cf cf_srights, re outreg using out0.doc, nolabel coefastr se 3aster append * Breusch and Pagan (1980) Lagrange multiplier test of the null hypothesis that errors are independent within countries * xttest0 ** Control for wedge between Control and CF rights ** xtreg q ntloangr srights cf cf_srights wedge we_srights, re outreg using out0.doc, nolabel coefastr se 3aster append xttest0 xtreg q ntloangr state1 srights cf cf_srights wedge we_srights, re outreg using out0.doc, nolabel coefastr se 3aster append xttest0 ******************************************************************** *** *** *** Table 6 *** *** Investor protection, bank supervision and valuation of banks *** *** *** ******************************************************************** * Random country effects * xtreg q ntloangr state1 cf srights cf_srights officialindex, re outreg using out1.doc, nolabel coefastr se 3aster replace xtreg q ntloangr state1 cf srights cf_srights restrict , re outreg using out1.doc, nolabel coefastr se 3aster append xtreg q ntloangr state1 cf srights cf_srights supindep, re outreg using out1.doc, nolabel coefastr se 3aster append xtreg q ntloangr state1 cf srights cf_srights res_cap, re outreg using out1.doc, nolabel coefastr se 3aster append **************************************************************** *** *** *** Table 8 *** *** Instrumental variables *** *** *** **************************************************************** *************************************************************** ** Average CF of other banks in country as instrument for CF ** *************************************************************** sort ctycode by ctycode: egen cfsum=sum(cf) by ctycode: egen cfno=count(cf) gen cfother=(cfsum-cf)/(cfno-1) if cfno>1 gen cfo_srights=cfother*srights * Exclude countries with only one bank * * Use Baltagi (1981)'s ec2sls estimator * * Without random country effects * * Average CF of other banks is a good instrument * xtivreg q state1 srights officialindex (cf cf_srights=cfother cfo_srights) if ctyname~="ARGENTINA" & ctyname~="FINLAND" & ctyname~="MEXICO" & ctyname~="PAKISTAN" & ctyname~="ZIMBABWE", re ec2sls outreg using out13.doc, nolabel coefastr se 3aster replace xtivreg q state1 srights restrict (cf cf_srights=cfother cfo_srights) if ctyname~="ARGENTINA" & ctyname~="FINLAND" & ctyname~="MEXICO" & ctyname~="PAKISTAN" & ctyname~="ZIMBABWE", re ec2sls outreg using out13.doc, nolabel coefastr se 3aster append xtivreg q state1 srights supindep (cf cf_srights=cfother cfo_srights) if ctyname~="ARGENTINA" & ctyname~="FINLAND" & ctyname~="MEXICO" & ctyname~="PAKISTAN" & ctyname~="ZIMBABWE", re ec2sls outreg using out13.doc, nolabel coefastr se 3aster append xtivreg q state1 srights res_cap (cf cf_srights=cfother cfo_srights) if ctyname~="ARGENTINA" & ctyname~="FINLAND" & ctyname~="MEXICO" & ctyname~="PAKISTAN" & ctyname~="ZIMBABWE", re ec2sls outreg using out13.doc, nolabel coefastr se 3aster append ** IV with bank-level var ** gen totast_srights=totast*srights gen lev=totdep/totast gen lev_srights=lev*srights gen ntloangr_srights=ntloangr*srights gen q_srights=q*srights ** Legal origin as instrument for srights ** gen cf_leguk=cf*legor_uk gen cf_legfr=cf*legor_fr gen cf_legge=cf*legor_ge gen cf_legsc=cf*legor_sc * A la Demsetz and Lehn * xtivreg q state1 srights (cf cf_srights=totast totast_srights) , re ec2sls first outreg using out13.doc, nolabel coefastr se 3aster append ** A la Demsetz and Villalonga (2001) ** xtivreg q state1 srights (cf cf_srights=totast totast_srights q q_srights ntloangr ntloangr_srights lev lev_srights) , re ec2sls first outreg using out13.doc, nolabel coefastr se 3aster append ** Common versus civil law ** xtivreg q state1 cf (srights cf_srights=legor_uk cf_leguk), re ec2sls first outreg using out13.doc, nolabel coefastr se 3aster append **************************************************************** *** *** *** Table 9 *** *** Additional country controls *** *** *** **************************************************************** * Adding additional country controls * xtreg q ntloangr state1 cf srights cf_srights lgdppc95, re outreg using out10.doc, nolabel coefastr se 3aster replace xtreg q ntloangr state1 cf srights cf_srights enforce, re outreg using out10.doc, nolabel coefastr se 3aster append xtreg q ntloangr state1 cf srights cf_srights corrupt, re outreg using out10.doc, nolabel coefastr se 3aster append xtreg q ntloangr state1 cf srights cf_srights law, re outreg using out10.doc, nolabel coefastr se 3aster append ** Report regressions for subsamples, such as rich versus poor ** ** Split sample by Median gdppc95 ** xtreg q ntloangr state1 cf srights cf_srights if lgdppc95>9.4, re outreg using out10.doc, nolabel coefastr se 3aster replace xtreg q ntloangr state1 cf srights cf_srights if lgdppc95<9.4, re outreg using out10.doc, nolabel coefastr se 3aster append **************************************************************** *** *** *** Table 11 *** *** Additional bank-level controls *** *** Alternative growth opportunities measures *** *** *** **************************************************************** ** Control for too-big-to-fail ** ** Deposits bank i over total deposits country from IFS ** gen dep_cdep=totdep/cdeposits gen tbtf=0 replace tbtf=1 if dep_cdep>.1 xtreg q ntloangr state1 srights cf cf_srights tbtf, re outreg using out11.doc, nolabel coefastr se 3aster replace ** Additional bank-level CAMEL controls ** * Capital * gen eqrat=equity/totast * caprat * Asset quality * gen llprat=llprov/netint gen nplrat=pbloan/(pbloan+ntloan) * Earnings * *roa* gen costinc=topeex/topein * Liquidity * gen liqrat=csdfbk/csfund xtreg q ntloangr state1 srights cf cf_srights caprat llprat costinc liqrat totast, re outreg using out11.doc, nolabel coefastr se 3aster append xtreg q ntloangr state1 srights cf cf_srights caprat llprat costinc liqrat totast roa, re ************************************** ** ** ** Table 12 ** ** Control for growth opportunities ** ** ** ************************************** ** Control for growth opportunities of bank using ROA (ntloangr not a measure of growth opportunities but rather of risk-taking) ** ** Winsorize at top and bottom 1 percentiles ** gen roew=roe replace roew=.36 if roe>.36 & roe~=. replace roew=-1.4 if roe<-1.4 & roe~=. gen roe3w=roe3 replace roe3w=.5 if roe3>.5 & roe3~=. replace roe3w=-.5 if roe3<-.5 & roe3~=. xtreg q ntloangr state1 cf srights cf_srights roew, re outreg using out19.doc, nolabel coefastr se 3aster replace xtreg q ntloangr state1 cf srights cf_srights roe3w, re outreg using out19.doc, nolabel coefastr se 3aster append ** Control for Growth opportunities of country: lag of median Q of non-financial companies * xtreg q ntloangr state1 srights cf cf_srights q_ws_median_2000, re outreg using out19.doc, nolabel coefastr se 3aster append gen cf_q_ws=cf*q_ws_median_2000 xtreg q ntloangr state1 srights cf cf_srights q_ws_median_2000 cf_q_ws, re outreg using out19.doc, nolabel coefastr se 3aster append * Use average ROA rather than average Q as proxy for country growth opportunities * xtreg q ntloangr state1 cf srights cf_srights roac, re outreg using out19.doc, nolabel coefastr se 3aster append * Use average ROE rather than average Q as proxy for country growth opportunities * xtreg q ntloangr state1 cf srights cf_srights roec, re outreg using out19.doc, nolabel coefastr se 3aster append * Control for merger activity using completed deals data from Rossi and Volpin, JFE 2004 ** sort ctyname merge ctyname using "ma.dta" drop _merge sort series year xtreg q ntloangr state1 cf srights cf_srights ma_volume, re outreg using out19.doc, nolabel coefastr se 3aster append /*clear all*/ log close