cd C:SriLanka\gender\data\GenderPublicUseData\ **** De Mel, McKenzie and Woodruff: Business Training and Female Enterprise Start-up, Growth, and Dynamics - Experimental Evidence from Sri Lanka **** Replication File for Impacts on Potential Firm Owners **** May 2013 **** Analysis starts on line 766, lines up to then construct and merge variables /* Operating data: There is no operating data from the baseline survey, since the sample is out of the labor force by design. In wave 2 (Sept 2009), all of women received the same survey instrument, so operating data is in that file In wave 3 (Jan 2010), some were given the "current" survey and some the "potential survey, and there may be operating data in either. In wave 4 (Sept 2010), there are 3 surveys: potential, current, and multi, that contain operating data, perhaps from multiple businesses. In wave 5 (June 2011) - was same as wave 4 */ use R2_potential.dta, clear gen round=2 gen interviewed=1 gen currentbusiness=1 if q1_2==4 gen wageworker=1 if q1_2<=2 replace currentbusiness=0 if currentbusiness==. & q1_1~=. replace wageworker=0 if wageworker==. & q1_1~=. gen unpaid=q1_1==1 & q1_2==3 gen wageincome=q2_5 *Characteristics of new businesses started gen bus_loc_home=q3_6==1 if q3_6~=. gen nb_agric=q3_2<=16 if q3_2~=. gen nb_food=q3_2>=150 & q3_2<=159 if q3_2~=. gen nb_clothes=q3_2>=170 & q3_2<=189 if q3_2~=. gen nb_retail=q3_2>=510 & q3_2<=529 if q3_2~=. gen nb_misc=q3_2~=. & nb_agric==0 & nb_food==0 & nb_clothes==0 & nb_retail==0 gen nb_sect="agric" if nb_agric==1 replace nb_sect="food" if nb_food==1 replace nb_sect="clothes" if nb_clothes==1 replace nb_sect="retail" if nb_retail==1 replace nb_sect="misc" if nb_misc==1 for var q5_1a_1- q5_10: mvdecode X, mv(999) rename q5_6 rev rename q5_9 prof rename q5_10 hhinc rename q5_1a_7 K rename q5_1a_5 K_land gen K_noland=K-K_land rename q5_3 inv replace inv=0 if q5_2==2 rename q5_4 cash rename q5_5h exp rename q5_5a inputs *Initial capital stock rename q4_1_7 Invest_init rename q4_1_1 Invest_init_land gen Invest_init_noland=Invest_init-Invest_init_land rename q4_5 get_TC rename q4_6 give_TC gen nb_hours_last=q3_5a gen nb_hours_norm=q3_5b sort sheno keep sheno round interviewed currentbus wageworker wageincome unpaid nb* rev prof hhinc K* inv cash exp inputs Invest* *_TC q6_2* q8_1* q8_4* nb_hours* drop nb1 nb2 sort sheno save "Gender_Potential_operating_round2.dta", replace clear ************ ROUND 3 * the potentials who had opened a business by Sept 2009 were surveyed using the * "Current" survey instrument, and are included in the "Current" database clear use R3_current.dta, clear mvdecode _all, mv(999) mvdecode _all, mv(99) label define yes_no 1 "Yes" label define yes_no 2 "No", add label define yes_no 3 "Don't Know", add label define yes_no 4 "Refuse", add keep if sagroup=="B" gen round=3 gen interviewed=1 gen currentbusiness=q1_1g==1|q1_1g==3 replace currentbusiness=1 if currentbusiness==0 & (q1_13==3 | q1_13==5) gen closedbusiness=q1_12<=2 gen houseworker=q1_13==4 gen wageworker=q1_13==1 gen wageincome=q2_5 gen bus_loc_home=q1_2==1 if q1_2~=. gen nb_agric=q3_1<=16 if q3_1~=. gen nb_food=q3_1>=150 & q3_1<=159 if q3_1~=. gen nb_clothes=q3_1>=170 & q3_1<=189 if q3_1~=. gen nb_retail=q3_1>=510 & q3_1<=529 if q3_1~=. gen nb_misc=q3_1~=. & nb_agric==0 & nb_food==0 & nb_clothes==0 & nb_retail==0 gen nb_sect="agric" if nb_agric==1 replace nb_sect="food" if nb_food==1 replace nb_sect="clothes" if nb_clothes==1 replace nb_sect="retail" if nb_retail==1 replace nb_sect="misc" if nb_misc==1 for var q7_6a-q7_7: mvdecode X, mv(999) rename q7_5 rev rename q7_8 prof rename q7_9 hhinc rename q5_3a_7 nb_K rename q5_3a_5 nb_K_land gen nb_K_noland=nb_K-nb_K_land for var q6_1a_1-q6_1b_7: mvdecode X, mv(999) gen netKchange_noland=(q6_1a_7-q6_1a_5) - (q6_1b_7-q6_1b_5) *Initial capital stock for new business opened this wave rename q5_1_7 Invest_init rename q5_1_1 Invest_init_land gen Invest_init_noland=Invest_init-Invest_init_land *Information for the combined businesses rename q7_2 inv replace inv=0 if q7_1==2 rename q7_3 cash rename q7_4h exp rename q7_4a inputs rename q7_10 get_TC rename q7_11 give_TC gen nb_hours_last=q3_2a gen nb_hours_norm=q3_2b gen hours_last=q6_5a gen hours_norm=q6_5b keep sheno round-wageworker wageincome nb* rev prof hhinc Invest* inv cash exp inputs *_TC hours* nb_hours* netKchange save r3potcur.dta, replace *We only asked hours worked for the new businesses, so we do not have that variable for this wave use R3_potential.dta, clear gen interviewed=1 gen round=3 gen currentbusiness=1 if q1_2==4 gen wageworker=1 if q1_2<=2 replace currentbusiness=0 if currentbusiness==. & q1_1~=. replace wageworker=0 if wageworker==. & q1_1~=. gen houseworker=q1_1==2 gen unpaid=q1_1==1 & q1_2==3 gen wageincome=q2_5 gen bus_loc_home=q3_6==1 if q3_6~=. gen nb_agric=q3_2<=16 if q3_2~=. gen nb_food=q3_2>=150 & q3_2<=159 if q3_2~=. gen nb_clothes=q3_2>=170 & q3_2<=189 if q3_2~=. gen nb_retail=q3_2>=510 & q3_2<=529 if q3_2~=. gen nb_misc=q3_2~=. & nb_agric==0 & nb_food==0 & nb_clothes==0 & nb_retail==0 gen nb_sect="agric" if nb_agric==1 replace nb_sect="food" if nb_food==1 replace nb_sect="clothes" if nb_clothes==1 replace nb_sect="retail" if nb_retail==1 replace nb_sect="misc" if nb_misc==1 for var q5_1a_1- q5_10: mvdecode X, mv(999) gen rev=q5_6 gen prof=q5_9 gen hhinc=q5_10 gen nb_K=q5_1a_7 gen nb_K_land=q5_1a_5 gen nb_K_noland=nb_K-nb_K_land for var q4_1_1- q4_1_7: mvdecode X, mv(999) *Initial capital stock for new business opened this wave gen Invest_init =q4_1_7 gen Invest_init_land=q4_1_1 gen Invest_init_noland=Invest_init-Invest_init_land gen inv=q5_3 replace inv=0 if q5_2==2 gen cash= q5_4 gen exp= q5_5h gen inputs= q5_5a gen get_TC= q4_5 gen give_TC= q4_6 gen nb_hours_last=q3_5a gen nb_hours_norm=q3_5b sort sheno keep sheno interviewed round-houseworker wageincome unpaid nb* rev prof hhinc Invest* inv cash exp inputs *_TC drop nb nb1 nb2 sort sheno append using r3potcur.dta sort sheno save "Gender_Potential_operating_round3.dta", replace ************************* ROUND 4 ************************************************ clear * the potentials who had opened a business by Sept 2009 were surveyed using the * "Current" survey instrument, and are included in the "Current" database use R4_current.dta, clear gen interviewed=1 gen round=4 mvdecode _all, mv(999) mvdecode _all, mv(99) label define yes_no 1 "Yes" label define yes_no 2 "No", add label define yes_no 3 "Don't Know", add label define yes_no 4 "Refuse", add rename samplegrp sagroup keep if sagroup=="B" gen currentbusiness=q1_1c==1 | q1_1c==3 replace currentbusiness=1 if currentbusiness==0 & (q1_13==3 | q1_13==5) gen wageworker=currentbusiness==0 & q1_13==1 gen closedbusiness=q1_12<=2 gen houseworker=q1_13==4 gen wageincome=q2_5 gen bus_loc_home=q1_2==1 if q1_2~=. gen nb_agric=q3_1<=16 if q3_1~=. gen nb_food=q3_1>=150 & q3_1<=159 if q3_1~=. gen nb_clothes=q3_1>=170 & q3_1<=189 if q3_1~=. gen nb_retail=q3_1>=510 & q3_1<=529 if q3_1~=. gen nb_misc=q3_1~=. & nb_agric==0 & nb_food==0 & nb_clothes==0 & nb_retail==0 gen nb_sect="agric" if nb_agric==1 replace nb_sect="food" if nb_food==1 replace nb_sect="clothes" if nb_clothes==1 replace nb_sect="retail" if nb_retail==1 replace nb_sect="misc" if nb_misc==1 destring q7_5, replace for var q5_1_1-q5_3b_7 q7_1-q7_12b_3: mvdecode X, mv(999) rename q7_5 rev rename q7_8 prof rename q7_9 hhinc rename q5_3a_7 nb_K rename q5_3a_5 nb_K_land gen nb_K_noland=nb_K-nb_K_land for var q6_1_a1-q6_1_b7: mvdecode X, mv(999) gen netKchange_noland=(q6_1_a7-q6_1_a5) - (q6_1_b7-q6_1_b5) *Initial capital stock for new business opened this wave rename q5_1_7 Invest_init rename q5_1_1 Invest_init_land gen Invest_init_noland=Invest_init-Invest_init_land *Information for the combined businesses rename q7_2 inv replace inv=0 if q7_1==2 rename q7_3 cash rename q7_4h exp rename q7_4a inputs rename q7_10 get_TC rename q7_11 give_TC gen nb_hours_last=q3_2a gen nb_hours_norm=q3_2b gen hours_last=q6_5a gen hours_norm=q6_5b * Management Scores foreach x of varlist q9_1-q9_22 { replace `x'=. if `x'>100 replace `x'=0 if `x'==2 replace `x'=0 if `x'==. & q9_1~=. } * MARKETING gen marketingscore=q9_18a+q9_18b+q9_18c+q9_18d+q9_18e+q9_20+q9_21 * BUYING AND STOCK CONTROL gen runoutstockfrequently=q9_3==4 replace runoutstock=runoutstock*-1 gen stockscore=q9_1+q9_2+runoutstock * RECORD-KEEPING AND COSTING egen recordscore=rsum(q9_5-q9_12) * FINANCIAL PLANNING replace q9_13=2 if q9_13==0 replace q9_13=q9_13-1 replace q9_14=2 if q9_15==0 replace q9_15=q9_15-1 replace q9_15=0 if q9_14==0 egen planningscore=rsum(q9_13-q9_17_4) * COMPARE gen totalscore=marketingscore+stockscore+recordscore+planningscore replace recordscore=. if totalscore==. replace planningscore=. if totalscore==. keep sheno interviewed round-houseworker wageincome nb* rev prof hhinc Invest* inv cash exp inputs *_TC hours* marketingscore-totalscore netKchange sort sheno merge sheno using R4_multi.dta keep if sheno >=6000 replace round=4 replace currentbusiness=1 if ((q1_2c_b1==2 & q1_2c_b2==2) | q1_2d==1) replace interviewed=1 replace wageworker=1 if currentbusiness==0 & q1_6==1 & _merge==2 replace houseworker=1 if q1_6==4 & _merge==2 replace wageincome=q2_5 if _merge==2 *gen bus_loc_home=q1_2==1 if q1_2~=. replace nb_agric=q3_1<=16 if q3_1~=. & _merge==2 replace nb_food=q3_1>=150 & q3_1<=159 if q3_1~=. & _merge==2 replace nb_clothes=q3_1>=170 & q3_1<=189 if q3_1~=. & _merge==2 replace nb_retail=q3_1>=510 & q3_1<=529 if q3_1~=. & _merge==2 replace nb_misc=q3_1~=. & nb_agric==0 & nb_food==0 & nb_clothes==0 & nb_retail==0 & _merge==2 replace nb_sect="agric" if nb_agric==1 & _merge==2 replace nb_sect="food" if nb_food==1 & _merge==2 replace nb_sect="clothes" if nb_clothes==1 & _merge==2 replace nb_sect="retail" if nb_retail==1 & _merge==2 replace nb_sect="misc" if nb_misc==1 & _merge==2 for var q5_1_1-q5_3b_7: mvdecode X, mv(999) replace rev= q7_5 if _merge==2 replace prof=q7_8 if _merge==2 gen expenses=exp if _merge==2 replace hhinc= q7_9 if _merge==2 replace nb_K=q5_3a_7 if _merge==2 replace nb_K_noland= q5_3a_5 if _merge==2 replace nb_K_noland=nb_K-nb_K_land if _merge==2 for var q6_1_1_b1a-q6_1_7_b3b: mvdecode X, mv(999) for var q6_1_5_b1a q6_1_7_b1a q6_1_5_b2a q6_1_7_b2a q6_1_5_b3a q6_1_7_b3a q6_1_5_b1b q6_1_7_b1b q6_1_5_b2b q6_1_7_b2b q6_1_5_b3b q6_1_7_b3b: replace X=0 if X==. & _merge==2 replace netKchange_noland=(q6_1_7_b1a-q6_1_5_b1a)+(q6_1_7_b2a-q6_1_5_b2a)+(q6_1_7_b3a-q6_1_5_b3a) - (q6_1_7_b1b-q6_1_5_b1b)-(q6_1_7_b2b-q6_1_5_b2b)-(q6_1_7_b3b-q6_1_5_b3b) if _merge==2 *Initial capital stock for new business opened this wave replace Invest_init= q5_1_7 if _merge==2 replace Invest_init_land=q5_1_1 if _merge==2 replace Invest_init_noland=Invest_init-Invest_init_land if _merge==2 *Information for the combined businesses replace inv=q7_2 if _merge==2 replace inv=0 if q7_1==2 & _merge==2 replace cash= q7_3 if _merge==2 replace exp= q7_4h if _merge==2 replace inputs=q7_4a if _merge==2 replace get_TC=q7_10 if _merge==2 replace give_TC=q7_11 if _merge==2 replace nb_hours_last=q3_2a if _merge==2 replace nb_hours_norm=q3_2b if _merge==2 replace hours_last=q6_5a_b1+q6_5a_b2 replace hours_norm=q6_5b_b1+q6_5b_b2 * Management Scores foreach x of varlist q9_1-q9_22 { replace `x'=. if `x'>100 replace `x'=0 if `x'==2 replace `x'=0 if `x'==. & q9_1~=. } * MARKETING replace marketingscore=q9_18a+q9_18b+q9_18c+q9_18d+q9_18e+q9_20+q9_21 if _merge==2 * BUYING AND STOCK CONTROL replace runoutstockfrequently=q9_3==4 replace runoutstock=runoutstock*-1 replace stockscore=q9_1+q9_2+runoutstock if _merge==2 * RECORD-KEEPING AND COSTING egen recordscore1=rsum(q9_5-q9_12) replace recordscore=recordscore1 if _merge==2 * FINANCIAL PLANNING replace q9_13=2 if q9_13==0 replace q9_13=q9_13-1 replace q9_14=2 if q9_15==0 replace q9_15=q9_15-1 replace q9_15=0 if q9_14==0 egen planningscore1=rsum(q9_13-q9_17_4) replace planningscore=planningscore1 if _merge==2 * COMPARE replace totalscore=marketingscore+stockscore+recordscore+planningscore if _merge==2 keep sheno interviewed round-houseworker wageincome nb* rev prof hhinc Invest* inv cash exp inputs *_TC hours* marketingscore-totalscore netKchange sort sheno merge sheno using R4_potential.dta tab _merge replace round=4 replace interviewed=1 replace currentbusiness=q1_1==1 if q1_2==4 & _merge==2 replace wageworker=q1_1==1 if q1_2<=2 & _merge==2 replace currentbusiness=0 if currentbusiness==. & q1_1~=. replace wageworker=0 if wageworker==. & q1_1~=. replace houseworker=q1_1==2 & _merge==2 replace wageincome=q2_5 if _merge==2 gen unpaid=q1_1==1 & q1_2==3 if _merge==2 gen bus_loc_home=q3_6==1 if q3_6~=. & _merge==2 replace nb_agric=q3_2<=16 if q3_2~=. & _merge==2 replace nb_food=q3_2>=150 & q3_2<=159 if q3_2~=. & _merge==2 replace nb_clothes=q3_2>=170 & q3_2<=189 if q3_2~=. & _merge==2 replace nb_retail=q3_2>=510 & q3_2<=529 if q3_2~=. & _merge==2 replace nb_misc=q3_2~=. & nb_agric==0 & nb_food==0 & nb_clothes==0 & nb_retail==0 & _merge==2 replace nb_sect="agric" if nb_agric==1 & _merge==2 replace nb_sect="food" if nb_food==1 & _merge==2 replace nb_sect="clothes" if nb_clothes==1 & _merge==2 replace nb_sect="retail" if nb_retail==1 & _merge==2 replace nb_sect="misc" if nb_misc==1 & _merge==2 for var q5_1a_1- q5_10: mvdecode X, mv(999) replace rev=q5_6 if _merge==2 replace prof=q5_9 if _merge==2 replace hhinc=q5_10 if _merge==2 replace nb_K=q5_1a_7 if _merge==2 replace nb_K_land=q5_1a_5 if _merge==2 replace nb_K_noland=nb_K-nb_K_land if _merge==2 for var q4_1_1- q4_1_7: mvdecode X, mv(999) *Initial capital stock for new business opened this wave replace Invest_init =q4_1_7 if _merge==2 replace Invest_init_land=q4_1_1 if _merge==2 replace Invest_init_noland=Invest_init-Invest_init_land if _merge==2 replace inv=q5_3 if _merge==2 replace inv=0 if q5_2==2 & _merge==2 replace cash= q5_4 if _merge==2 replace exp= q5_5h if _merge==2 replace inputs= q5_5a if _merge==2 replace get_TC= q4_5 if _merge==2 replace give_TC= q4_6 if _merge==2 replace nb_hours_last=q3_5a if _merge==2 replace nb_hours_norm=q3_5b if _merge==2 * Management Scores foreach x of varlist q9_1-q9_22 { replace `x'=. if `x'>100 replace `x'=0 if `x'==2 replace `x'=0 if `x'==. & q9_1~=. } * MARKETING replace marketingscore=q9_18a+q9_18b+q9_18c+q9_18d+q9_18e+q9_20+q9_21 if _merge==2 * BUYING AND STOCK CONTROL replace runoutstockfrequently=q9_3==4 replace runoutstock=runoutstock*-1 replace stockscore=q9_1+q9_2+runoutstock if _merge==2 * RECORD-KEEPING AND COSTING egen recordscore1=rsum(q9_5-q9_12) replace recordscore=recordscore1 if _merge==2 * FINANCIAL PLANNING replace q9_13=2 if q9_13==0 replace q9_13=q9_13-1 replace q9_14=2 if q9_15==0 replace q9_15=q9_15-1 replace q9_15=0 if q9_14==0 egen planningscore1=rsum(q9_13-q9_17_4) replace planningscore=planningscore1 if _merge==2 * COMPARE replace totalscore=marketingscore+stockscore+recordscore+planningscore if _merge==2 sort sheno keep sheno interviewed round-houseworker wageincome nb* rev prof hhinc Invest* inv cash exp inputs *_TC hours* marketingscore-totalscore netKchange drop nb nb1 nb2 nb_b* replace currentbusiness=1 if prof~=. & currentbusiness==. sort sheno save "Gender_Potential_operating_round4.dta", replace clear ****** baseline data ** Randomization strata and assignment use R1_potential.dta, clear cap drop concretesteps talent atleastonetalent neverworked cap drop gq6_10d- gq6_13d gen concretesteps=q6_5==1 for var q6_10d- q6_13d: gen gX=X<=2 egen talent=rsum( gq6_10d- gq6_13d) tab talent gen atleastonetalent=talent>=1 gen neverworked=q2_3==0 rename q1_10 age gen married = 1 if q1_12==2 replace married = 2 if q1_12~=2 & q1_12~=. rename q2_1 education_level rename q2_2 years_formal_education mvencode q11_4_1-q11_4_12, mv(0) gen raven1=q11_4_1==8 gen raven2=q11_4_2==4 gen raven3=q11_4_3==5 gen raven4=q11_4_4==1 gen raven5=q11_4_5==2 gen raven6=q11_4_6==5 gen raven7=q11_4_7==6 gen raven8=q11_4_8==3 gen raven9=q11_4_9==7 gen raven10=q11_4_10==8 gen raven11=q11_4_10==7 gen raven12=q11_4_12==6 egen raven=rsum(raven1-raven12) rename q12_1 risk_attitude *digitspan destring q12_2b, force replace destring q12_2e, force replace gen digitspan=3 if q12_2a==2 replace digitspan=4 if q12_2b==2 replace digitspan=5 if q12_2c==2 replace digitspan=6 if q12_2d==2 replace digitspan=7 if q12_2e==2 replace digitspan=8 if q12_2f==2 replace digitspan=9 if q12_2g==2 replace digitspan=10 if q12_2h==2 replace digitspan=11 if q12_2h==1 label var digitspan "Digit Span recall Maximum" for var married : replace X=0 if X==2 gen children=q1_18 replace children=0 if children==. & married==0 gen years_edn=education_level if education_level<=13 replace years_edn=0 if education_level==18 replace years_edn=years_formal_education if years_formal_education~=. gen colombo=di==5 gen kandy=di==11 gen hhincome=q4_4 gen fridge=q3_13_2==1 gen sewingmachine=q3_13_4==1 gen oven=q3_13_9==1 gen gascooker=q3_13_10==1 gen evercash=treatgroup==3 gen evertrain=treatgroup==2 egen newstrata=group(ds concrete neverworked) keep sheno evercash evertrain newstrata sort sheno save potentialslist.dta, replace *** Get variables we need out of June 2011 Potential Surveys use R5_potential.dta, clear *** Survival, Interviewed, and Has Multiple Businesses gen interviewed=qf2==1 gen currentbusiness=1 if qf4_2==1|q1_2==4|q1_2==5 for num 3/8: replace currentbusiness=0 if qf4_X==1 & currentbusiness==. replace currentbusiness=0 if qf4_1==1 & currentbusiness==. replace currentbusiness=0 if q1_1==2 gen wageworker=1 if qf4_1==1|q1_2==1|q1_2==5|q2_1~=. replace wageworker=0 if currentbusiness~=. & wageworker==. gen wageincome=q2_5 replace currentbusiness=0 if wageworker==1 & currentbusiness==. gen houseworker=q1_1==2|qf4_6==1 replace houseworker=. if currentbusiness==. gen startedbus=q1_0a_2==1|q1_0a_4==1|q1_12==1 replace startedbus=. if q1_0a_2==. gen startandstop=1 if q1_0c==1|q1_12==1 replace startandstop=0 if (q1_0c==2|q1_12==2) & startandstop==. gen total_sales=q5_6a gen total_profits=q5_9a gen exp=q5_5h gen potentialsjune11=1 gen hhinc=q5_10 gen nb_K=q5_1a_7 gen nb_K_land=q5_1a_5 gen nb_K_noland=nb_K-nb_K_land gen inv=q5_3 replace inv=0 if q5_2==2 * Management Scores foreach x of varlist q9_1-q9_22 { replace `x'=. if `x'>100 replace `x'=0 if `x'==2 replace `x'=0 if `x'==. & q9_1~=. } * MARKETING gen marketingscore=q9_18a+q9_18b+q9_18c+q9_18d+q9_18e+q9_20+q9_21 * BUYING AND STOCK CONTROL gen runoutstockfrequently=q9_3==4 replace runoutstock=runoutstock*-1 gen stockscore=q9_1+q9_2+runoutstock * RECORD-KEEPING AND COSTING egen recordscore1=rsum(q9_5-q9_12) gen recordscore=recordscore1 * FINANCIAL PLANNING replace q9_13=2 if q9_13==0 replace q9_13=q9_13-1 replace q9_14=2 if q9_15==0 replace q9_15=q9_15-1 replace q9_15=0 if q9_14==0 egen planningscore1=rsum(q9_13-q9_17_4) gen planningscore=planningscore1 * COMPARE gen totalscore=marketingscore+stockscore+recordscore+planningscore keep sheno interviewed currentbus wageworker wageincome houseworker hhinc startedbus startandstop total_sales total_profits potentialsjune11 exp nb_K-totalscore gen round=5 sort sheno save june11potentials.dta, replace use female_firms_srilanka1.dta, clear rename total_expenses exp sort sheno keep sheno round interviewed currentbus wageworker wageincome startedbus startandstop exp total_sales total_profits marketingscore-totalscore total_assets* value_current_inv netKchange append using june11potentials.dta sort sheno merge sheno using potentialslist.dta keep if _merge==3 keep if round==5 drop _merge sort sheno save "Gender_Potential_operating_round5.dta", replace ****** What are women doing now? use R5_potential.dta, clear * drop those where no one knows what they are doing drop if qf4_9==1 * Main activity engaged in now gen noeconomicactivity=cond(q1_1==2,1,0) if q1_1~=. replace noeconomicactivity=1 if qf4_6==1 & noeconomic==. replace noeconomicactivity=0 if qf4_6==2 & noeconomic==. gen wworker=cond(q1_2==1,1,0) if q1_1~=. replace wworker=cond(qf4_1==1,1,0) if qf4_1~=. & wworker==. gen casualworker=cond(q1_2==2,1,0) if q1_1~=. gen unpaidworker=cond(q1_2==3,1,0) if q1_1~=. gen decidednobusiness=q1_9b==3 if q1_1~=. gen overalllifesatisfaction=q11_1e keep sheno noeconomic-decidednobusiness q10_2_1-q10_2_15 overalllifesatisfaction sort sheno save potentialsdoingnow.dta, replace use R5_current.dta, clear keep if sheno>=6000 * drop those where nothing known drop if qf5_10==1 gen noeconomicactivity=cond(q1_13==4,1,0) if q1_13~=. replace noeconomicactivity=cond(qf5_7==1,0,1) if noeconomic==. & qf5_7~=. gen wworker=cond(q1_13==1,1,0) if q1_0a_1~=. replace wworker=cond(qf5_3==1,1,0) if wworker==. & qf5_3~=. gen overalllifesatisfaction=q11_1e keep sheno noeconomic wworker q10_2_1-q10_2_15 overalllife append using potentialsdoingnow.dta sort sheno save potentialsdoingnow.dta, replace use R5_multi.dta, clear keep if sheno>=6000 * drop those where nothing known drop if qf5_11==1 gen noeconomicactivity=cond(q1_6==4,1,0) if q1_6~=. replace noeconomicactivity=cond(qf5_8==1,0,1) if noeconomic==. & qf5_8~=. gen wworker=cond(q1_6==1,1,0) if q1_0a_1~=. replace wworker=cond(qf5_4==1,1,0) if wworker==. & qf5_4~=. gen overalllifesatisfaction=q11_1e keep sheno noeconomic wworker q10_2_1-q10_2_15 overalllife append using potentialsdoingnow.dta sort sheno save potentialsdoingnow.dta, replace ******************** APPENDING ROUNDS ************************ ** First fill in missing obs in rounds 2-4 use "Gender_Potential_operating_round2.dta", clear cap drop _merge sort sheno merge sheno using potentialslist.dta replace round=2 if round==. save "Gender_Potential_operating_round2.dta", replace use "Gender_Potential_operating_round3.dta", clear cap drop _merge sort sheno merge sheno using potentialslist.dta replace round=3 if round==. save "Gender_Potential_operating_round3.dta", replace use "Gender_Potential_operating_round4.dta", clear cap drop _merge sort sheno merge sheno using potentialslist.dta replace round=4 if round==. save "Gender_Potential_operating_round4.dta", replace *** getting willingness to pay from baseline use R1_potential.dta, clear gen pay500ormore=cond(q7_8>=500, 1, 0) if q7_8~=. keep sheno pay500ormore ds sort sheno save wtppotentials.dta, replace ***************************************************************************************************** ***** ANALYSIS ******************** ********************************************************************************************** clear matrix clear cd C:\Users\wb200090\Dropbox\DavidMcKenzie\otherresearch\SriLanka\gender\data\GenderPublicUseData\ **** Now append all rounds together use "Gender_Potential_operating_round2.dta", clear append using "Gender_Potential_operating_round3.dta" append using "Gender_Potential_operating_round4.dta" append using "Gender_Potential_operating_round5.dta" replace interviewed=0 if interviewed==. drop _merge sort sheno round merge sheno round using extrainfoonpotentialfirms.dta replace currentbusiness=manualinput if currentbusiness==. gen control=evercash==0 & evertrain==0 gen hasbusinfo=currentbus~=. cap drop _merge sort sheno merge sheno using Potentials\potentialfixeddata.dta cap drop _merge sort sheno merge sheno using Potentials\wealthindexpotential.dta cap drop _merge sort sheno merge sheno using Potentials\Potential_training_takeup.dta drop _merge cap drop _merge sort sheno merge sheno using wtppotentials.dta drop _merge *** construct inventories and capital stock by round gen inventories=inv replace inventories=value_current_inv if round==5 & value_current_inv~=. gen capital_noland=K_noland if round==2 tsset sheno round replace capital_noland=L.K_noland + netKchange if round==3 replace capital_noland=nb_K_noland if round==3 & nb_K_noland~=. tsset sheno round replace capital_noland=L.capital_noland + netKchange if round==4 replace capital_noland=nb_K_noland if round==4 & nb_K_noland~=. & L.capital_noland==. replace capital_noland=L.capital_noland+nb_K_noland if round==4 & nb_K_noland~=. & L.capital_noland~=. replace netKchange=total_assets_purchased_lessland-total_assets_sold_lessland if round==5 & total_assets_purchased_lessland~=. & netKchange==. tsset sheno round replace capital_noland=L.capital_noland + netKchange if round==5 replace capital_noland=nb_K_noland if round==5 & nb_K_noland~=. & L.capital_noland==. replace capital_noland=L.capital_noland+nb_K_noland if round==5 & nb_K_noland~=. & L.capital_noland~=. replace capital_noland=total_assets_owned_less if round==5 & total_assets_owned_less>0 & total_assets_owned_less~=. & L.capital_noland==. replace capital_noland=L.capital_noland+total_assets_owned_less if round==5 & total_assets_owned_less>0 & total_assets_owned_less~=. & L.capital_noland~=. gen allK_noland=capital_noland+inventories ***** Table 1: Balance by treatment status bysort treatgroup: sum colombo kandy concretestep neverworked age married children years_edn risk_attitude digitspan raven hhincome wealthindex fridge-gascooker if round==2 * collapse (mean) colombo kandy concretestep neverworked age married children years_edn risk_attitude digitspan raven hhincome wealthindex fridge-gascooker, by(treatgroup) for var concretestep atleastonetalent neverworked colombo kandy age married children years_edn risk_attitude digitspan raven hhincome fridge-gascooker: areg X evercash evertrain, robust a(newstrata) foreach var in concretestep atleastonetalent neverworked colombo kandy age married children years_edn risk_attitude digitspan raven hhincome wealthindex fridge sewingmachine oven gascooker { reg `var' evercash evertrain if round==2, robust test evercash==evertrain==0 } ***** Table 4: Impacts on Business Ownership and Wage work ** ITT estimates ** Impact on current business areg currentbusiness evercash evertrain if round==2, a(newstrata) robust test evercash==evertrain sum currentbusiness if evercash==0 & evertrain==0 & round==2 outreg2 evercash evertrain using table4.out, replace areg currentbusiness evercash evertrain if round==3, a(newstrata) robust test evercash==evertrain sum currentbusiness if evercash==0 & evertrain==0 & round==3 outreg2 evercash evertrain using table4.out, append areg currentbusiness evercash evertrain if round==4, a(newstrata) robust test evercash==evertrain sum currentbusiness if evercash==0 & evertrain==0 & round==4 outreg2 evercash evertrain using table4.out, append areg currentbusiness evercash evertrain if round==5, a(newstrata) robust test evercash==evertrain sum currentbusiness if evercash==0 & evertrain==0 & round==5 outreg2 evercash evertrain using table4.out, append *** Ever had a business egen evercurrentbusiness=max(currentbusiness), by(sheno) areg evercurrentbusiness evercash evertrain if round==5, a(newstrata) robust test evercash==evertrain sum evercurrentbusiness if evercash==0 & evertrain==0 & round==5 outreg2 evercash evertrain using table4.out, append *** Have closed a business tsset sheno round gen nowclosed=0 if round==5 & currentbus==1 replace nowclosed=1 if evercurrentbusiness==1 & currentbus==0 & round==5 replace nowclosed=0 if evercurrentbusiness==0 & currentbus==0 & round==5 replace nowclosed=1 if startandstop==1 & currentbus==0 & round==5 areg nowclosed evercash evertrain if round==5, a(newstrata) robust test evercash==evertrain sum nowclosed if round==5 & control==1 outreg2 evercash evertrain using table4.out, append *** Is a wage worker areg wageworker evercash evertrain if round==2, a(newstrata) robust test evercash==evertrain sum wageworker if evercash==0 & evertrain==0 & round==2 outreg2 evercash evertrain using table4.out, append areg wageworker evercash evertrain if round==3, a(newstrata) robust test evercash==evertrain sum wageworker if evercash==0 & evertrain==0 & round==3 outreg2 evercash evertrain using table4.out, append areg wageworker evercash evertrain if round==4, a(newstrata) robust test evercash==evertrain sum wageworker if evercash==0 & evertrain==0 & round==4 outreg2 evercash evertrain using table4.out, append areg wageworker evercash evertrain if round==5, a(newstrata) robust test evercash==evertrain sum wageworker if evercash==0 & evertrain==0 & round==5 outreg2 evercash evertrain using table4.out, append *** TOT estimates gen getcash=evercash==1 & trainingaccepted==1 gen gettrain=evertrain==1 & trainingaccepted==1 xi: ivreg2 currentbusiness (getcash gettrain = evercash evertrain) i.newstrata if round==2, robust outreg2 getcash gettrain using table4a.out, replace xi: ivreg2 currentbusiness (getcash gettrain = evercash evertrain) i.newstrata if round==3, robust outreg2 getcash gettrain using table4a.out, append xi: ivreg2 currentbusiness (getcash gettrain = evercash evertrain) i.newstrata if round==4, robust outreg2 getcash gettrain using table4a.out, append xi: ivreg2 currentbusiness (getcash gettrain = evercash evertrain) i.newstrata if round==5, robust outreg2 getcash gettrain using table4a.out, append xi: ivreg2 evercurrentbusiness (getcash gettrain = evercash evertrain) i.newstrata if round==5, robust outreg2 getcash gettrain using table4a.out, append xi: ivreg2 nowclosed (getcash gettrain = evercash evertrain) i.newstrata if round==5, robust outreg2 getcash gettrain using table4a.out, append xi: ivreg2 wageworker (getcash gettrain = evercash evertrain) i.newstrata if round==2, robust outreg2 getcash gettrain using table4a.out, append xi: ivreg2 wageworker (getcash gettrain = evercash evertrain) i.newstrata if round==3, robust outreg2 getcash gettrain using table4a.out, append xi: ivreg2 wageworker (getcash gettrain = evercash evertrain) i.newstrata if round==4, robust outreg2 getcash gettrain using table4a.out, append xi: ivreg2 wageworker (getcash gettrain = evercash evertrain) i.newstrata if round==5, robust outreg2 getcash gettrain using table4a.out, append **** Appendix Table 3: Heterogeneity in impact on owning a business gen notworkingR5=currentbusiness==0 & wageworker==0 & round==5 replace notworkingR5=. if currentbusiness==.|wageworker==. replace notworking=. if round<5 * Panel A: Raven Score gen evercash_raven=evercash*raven gen evertrain_raven=evertrain*raven areg currentbusiness evercash evertrain evercash_raven evertrain_raven raven if round==2, a(newstrata) robust outreg2 evercash evertrain evercash_raven evertrain_raven using table6.out, replace areg currentbusiness evercash evertrain evercash_raven evertrain_raven raven if round==3, a(newstrata) robust outreg2 evercash evertrain evercash_raven evertrain_raven using table6.out, append areg currentbusiness evercash evertrain evercash_raven evertrain_raven raven if round==4, a(newstrata) robust outreg2 evercash evertrain evercash_raven evertrain_raven using table6.out, append areg currentbusiness evercash evertrain evercash_raven evertrain_raven raven if round==5, a(newstrata) robust outreg2 evercash evertrain evercash_raven evertrain_raven using table6.out, append areg evercurrentbusiness evercash evertrain evercash_raven evertrain_raven raven if round==5, a(newstrata) robust outreg2 evercash evertrain evercash_raven evertrain_raven using table6a.out, replace areg nowclosed evercash evertrain evercash_raven evertrain_raven raven if round==5, a(newstrata) robust outreg2 evercash evertrain evercash_raven evertrain_raven using table6a.out, append areg wageworker evercash evertrain evercash_raven evertrain_raven raven if round==5, a(newstrata) robust outreg2 evercash evertrain evercash_raven evertrain_raven using table6a.out, append areg notworkingR5 evercash evertrain evercash_raven evertrain_raven raven if round==5, a(newstrata) robust outreg2 evercash evertrain evercash_raven evertrain_raven using table6a.out, append * Panel B: Digitspan Recall gen evercash_digitspan=evercash*digitspan gen evertrain_digitspan=evertrain*digitspan areg currentbusiness evercash evertrain evercash_digitspan evertrain_digitspan digitspan if round==2, a(newstrata) robust outreg2 evercash evertrain evercash_digitspan evertrain_digitspan using table6.out, append areg currentbusiness evercash evertrain evercash_digitspan evertrain_digitspan digitspan if round==3, a(newstrata) robust outreg2 evercash evertrain evercash_digitspan evertrain_digitspan using table6.out, append areg currentbusiness evercash evertrain evercash_digitspan evertrain_digitspan digitspan if round==4, a(newstrata) robust outreg2 evercash evertrain evercash_digitspan evertrain_digitspan using table6.out, append areg currentbusiness evercash evertrain evercash_digitspan evertrain_digitspan digitspan if round==5, a(newstrata) robust outreg2 evercash evertrain evercash_digitspan evertrain_digitspan using table6.out, append areg evercurrentbusiness evercash evertrain evercash_digitspan evertrain_digitspan digitspan if round==5, a(newstrata) robust outreg2 evercash evertrain evercash_digitspan evertrain_digitspan digitspan using table6a.out, append areg nowclosed evercash evertrain evercash_digitspan evertrain_digitspan digitspan if round==5, a(newstrata) robust outreg2 evercash evertrain evercash_digitspan evertrain_digitspan digitspan using table6a.out, append areg wageworker evercash evertrain evercash_digitspan evertrain_digitspan digitspan if round==5, a(newstrata) robust outreg2 evercash evertrain evercash_digitspan evertrain_digitspan digitspan using table6a.out, append areg notworkingR5 evercash evertrain evercash_digitspan evertrain_digitspan digitspan if round==5, a(newstrata) robust outreg2 evercash evertrain evercash_digitspan evertrain_digitspan digitspan using table6a.out, append * Panel C: Wealth Index gen evercash_wealthindex=evercash*wealthindex gen evertrain_wealthindex=evertrain*wealthindex areg currentbusiness evercash evertrain evercash_wealthindex evertrain_wealthindex wealthindex if round==2, a(newstrata) robust outreg2 evercash evertrain evercash_wealthindex evertrain_wealthindex using table6.out, append areg currentbusiness evercash evertrain evercash_wealthindex evertrain_wealthindex wealthindex if round==3, a(newstrata) robust outreg2 evercash evertrain evercash_wealthindex evertrain_wealthindex using table6.out, append areg currentbusiness evercash evertrain evercash_wealthindex evertrain_wealthindex wealthindex if round==4, a(newstrata) robust outreg2 evercash evertrain evercash_wealthindex evertrain_wealthindex using table6.out, append areg currentbusiness evercash evertrain evercash_wealthindex evertrain_wealthindex wealthindex if round==5, a(newstrata) robust outreg2 evercash evertrain evercash_wealthindex evertrain_wealthindex using table6.out, append areg evercurrentbusiness evercash evertrain evercash_wealthindex evertrain_wealthindex wealthindex if round==5, a(newstrata) robust outreg2 evercash evertrain evercash_wealthindex evertrain_wealthindex wealthindex using table6a.out, append areg nowclosed evercash evertrain evercash_wealthindex evertrain_wealthindex wealthindex if round==5, a(newstrata) robust outreg2 evercash evertrain evercash_wealthindex evertrain_wealthindex wealthindex using table6a.out, append areg wageworker evercash evertrain evercash_wealthindex evertrain_wealthindex wealthindex if round==5, a(newstrata) robust outreg2 evercash evertrain evercash_wealthindex evertrain_wealthindex wealthindex using table6a.out, append areg notworkingR5 evercash evertrain evercash_wealthindex evertrain_wealthindex wealthindex if round==5, a(newstrata) robust outreg2 evercash evertrain evercash_wealthindex evertrain_wealthindex wealthindex using table6a.out, append *** APPENDIX 2 ** Bounds for Currently Owning a Business gen lowerbound=currentbusiness replace lowerbound=1 if currentbusiness==. & control==1 replace lowerbound=0 if currentbusiness==. & (evercash==1|evertrain==1) gen upperbound=currentbusiness replace upperbound=0 if currentbusiness==. & control==1 replace upperbound=1 if currentbusiness==. & (evercash==1|evertrain==1) foreach var in lowerbound upperbound { areg `var' evercash evertrain if round==2, a(newstrata) robust outreg2 evercash evertrain using appendix2.out, append areg `var' evercash evertrain if round==3, a(newstrata) robust outreg2 evercash evertrain using appendix2.out, append areg `var' evercash evertrain if round==4, a(newstrata) robust outreg2 evercash evertrain using appendix2.out, append areg `var' evercash evertrain if round==5, a(newstrata) robust outreg2 evercash evertrain using appendix2.out, append } *** Table 5: Impacts on Firm outcomes gen cpi=131.2 if round==1 replace cpi=134.7 if round==2 replace cpi=137.8 if round==3 replace cpi=141.4 if round==4 replace cpi=151.5 if round==5 gen inflatadj=1 if round==1 replace inflatadj=131.2/134.7 if round==2 replace inflatadj=131.2/137.8 if round==3 replace inflatadj=131.2/141.4 if round==4 replace inflatadj=131.2/151.5 if round==5 ** Profits as Outcome gen realprofits=prof if round<=4 replace realprofits=total_profit if round==5 replace realprofits=realprofits*inflatadj sum realprofits, de gen prof_trunc=realprofits replace prof_trunc=38970.3 if realprofits>38970.3 & realprofits~=. *** Sales as Outcome gen realsales=rev if round<=4 replace realsales=total_sales if round==5 replace realsales=realsales*inflatadj sum realsales, de gen sales_trunc=realsales replace sales_trunc=174438.5 if realsales>174438.5 & realsales~=. *** Total work income as outcome gen totalworkinc=0 if interviewed==1 replace totalworkinc=realprofits if realprofits~=. replace wageincome=wageincome*inflatadj replace totalworkinc=totalworkinc+(30/4)*wageincome if wageincome~=. sum totalworkinc, de gen totalinc_trunc=totalworkinc replace totalinc_trunc=38970.3 if totalworkinc>38970.3 & totalworkinc~=. *** Capital stock as outcome gen realK=allK_noland*inflatadj sum realK, de gen K_trunc=realK replace K_trunc=394342.3 if realK>394342.3 & realK~=. for num 2/5: gen waveX=round==X ** Panel A: Experimental results foreach var in totalinc_trunc prof_trunc sales_trunc K_trunc { ** Round 2 and 3 areg `var' evercash evertrain wave2 wave3 if round==2|round==3, a(newstrata) cluster(sheno) outreg2 evercash evertrain using Table5.out, append test evercash=evertrain sum `var' if e(sample) & evercash==0 & evertrain==0 ** Round 4 and 5 areg `var' evercash evertrain wave4 wave5 if round==4|round==5, a(newstrata) cluster(sheno) outreg2 evercash evertrain using Table5.out, append test evercash=evertrain sum `var' if e(sample) & evercash==0 & evertrain==0 } * Business practices are only in rounds 4 and 5 for these firms areg totalscore evercash evertrain wave4 wave5 if round==4|round==5, a(newstrata) cluster(sheno) outreg2 evercash evertrain using Table5.out, append test evercash=evertrain sum totalscore if e(sample) & evercash==0 & evertrain==0 ** Panel B: Impacts using Generalized Propensity Score Reweighting * Weights for R2 and 3 gen businessin2or3=currentbusiness if round==2|round==3 egen mbus2or3=max(businessin2or3), by(sheno) mlogit treatgroup someonetolook age married years_edn risk_attitude raven digitspan wealthindex pay500 concretestep neverworked if round==2 & mbus2or3==1, robust predict p1, outcome(1) egen mp1=max(p1), by(sheno) gen wp1=1/mp1 bysort treatgroup: sum mp1, de * Restrict to within 1/99th percentile of each group replace wp1=. if mp1< .184|mp1> .458 * Weights for R4 and 5 gen businessin4or5=currentbusiness if round==4|round==5 egen mbus4or5=max(businessin4or5), by(sheno) mlogit treatgroup someonetolook age married years_edn risk_attitude raven digitspan wealthindex pay500 concretestep neverworked if round==5 & mbus4or5==1, robust predict p1a, outcome(1) egen mp1a=max(p1a), by(sheno) gen wp1a=1/mp1a bysort treatgroup: sum mp1a if round>=4, de * Restrict to within 1/99th percentile of each group replace wp1a=. if mp1a< .212|mp1a> .551 foreach var in prof_trunc sales_trunc K_trunc { areg `var' evercash evertrain wave2 wave3 if round==2|round==3 [aw=wp1], a(newstrata) cluster(sheno) outreg2 evercash evertrain using Table5B.out, append test evercash=evertrain areg `var' evercash evertrain wave4 wave5 if round==4|round==5 [aw=wp1a], a(newstrata) cluster(sheno) outreg2 evercash evertrain using Table5B.out, append test evercash=evertrain } * Business practices are only in rounds 4 and 5 for these firms areg totalscore evercash evertrain wave4 wave5 if round==4|round==5 [aw=wp1a], a(newstrata) cluster(sheno) outreg2 evercash evertrain using Table5B.out, append test evercash=evertrain sum totalscore if e(sample) & evercash==0 & evertrain==0 *** appendix table 2: is it due to better measurement areg prof_trunc evercash evertrain wave4 wave5 if round==4|round==5, a(newstrata) cluster(sheno) outreg2 evercash evertrain using appendix2.out, replace areg prof_trunc evercash evertrain recordscore wave4 wave5 if round==4|round==5, a(newstrata) cluster(sheno) outreg2 evercash evertrain recordscore using appendix2.out, append gen realexpenses=exp*inflatadj gen revenueminusexpenses=realsales-realexpenses gen absdiff=abs(realprof-revenueminusexpenses) gen absdiff_trunc=absdiff replace absdiff_trunc=48626.27 if absdiff>48626.27 & absdiff~=. areg absdiff_trunc evercash evertrain wave4 wave5 if round>=4, a(newstrata) cluster(sheno) outreg2 evercash evertrain using appendix2.out, append