*** Replication file for McKenzie, Assaf and Cusolito (2015) *** The Demand for, and Impact of, Youth Internships: Evidence from a Randomized Experiment in Yemen * Stata version version 14.0 * Change this directory to the directory where the data is stored use "C:\InternPublicUseData.dta", clear *** Look at interview response rates by treatment status bysort round1Treat1: sum foundatfollowup if experimentalsamplev3==1 * regression of whether selective response egen Strata=group(Specialization City) areg foundatfollowup round1Treat if experimentalsamplev3==1, r a(Strata) * we find no significant differential response rate by treatment * Now construct variables from follow-up survey gen age=EIQ1 label var age "Age at follow-up" gen female=cond(EIQ2==1, 1, 0) if EIQ2~=. gen sanaafollow=cond(EIQ3==1, 1, 0) if EIQ3~=. label var sanaafollow "Lives in Sanaa at Follow-up" gen adenfollow=cond(EIQ3==2, 1, 0) if EIQ3~=. label var adenfollow "Lives in Aden at Follow-up" gen marriedfollow=cond(EIQ4==1,1,0) if EIQ4~=. label var marriedfollow "Married at follow-up" gen workedatall2014=cond(EM_2014Q5==1,1,0) if EM_2014Q5~=. label var workedatall2014 "Worked at all in 2014" gen nummonthsworked2014=EM_2014Q6 replace nummonthsworked2014=0 if workedatall2014==0 label var nummonthsworked2014 "Number Months Worked in 2014" gen permonthinc2014=EM_2014Q7 replace permonthinc2014=. if EM_2014Q7<0 replace permonthinc2014=0 if workedatall2014==0 label var permonthinc2014 "Average monthly earnings in 2014 when work" sum permonthinc2014, de gen permonthinc_trunc=permonthinc2014 replace permonthinc_trunc=r(p99) if permonthinc_trunc>r(p99) & permonthinc_trunc~=. label var permonthinc_trunc "Truncated monthly income in 2014" gen privateemployer=cond(EM_2014Q9==2, 1, 0) if EM_2014Q9~=. label var privateemployer "Worked for a private employer in 2014" gen jobrelatedtostudy =cond(EM_2014Q10Q10_1==1, 1, 0) if EM_2014Q10Q10_1~=. label var jobrelatedtostudy "Job was related to studies" gen usedcomputer =cond(EM_2014Q10Q10_2==1, 1, 0) if EM_2014Q10Q10_2~=. label var usedcomputer "Job used a computer" gen learnedtechnical =cond(EM_2014Q10Q10_3==1, 1, 0) if EM_2014Q10Q10_3~=. label var learnedtechnical "Learned new technical skills in job" gen learnedorg =cond(EM_2014Q10Q10_4==1, 1, 0) if EM_2014Q10Q10_4~=. label var learnedorg "Learned new organizational skills in job" gen menial =cond(EM_2014Q10Q10_5==1, 1, 0) if EM_2014Q10Q10_5~=. label var menial "2 hours more of tasks beneath them" gen idlejob =cond(EM_2014Q10Q10_6==1, 1, 0) if EM_2014Q10Q10_6~=. label var idlejob "Idle at job for 5 hours or more per week" gen saystookinternship=cond(EM_2014Q11==1,1,0) if EM_2014Q11~=. replace saystookinternship=0 if workedatall2014==0 label var saystookinternship "Says took internship with Wathba project" gen workedDec2014=cond(EM_2014Q23==1, 1, 0) if EM_2014Q23~=. replace workedDec2014=0 if workedatall2014==0 label var workedDec2014 "Worked in December 2014" gen hoursworkedDec2014=EM_2014Q24Q24_h replace hoursworkedDec2014=0 if workedDec2014==0 label var hoursworkedDec2014 "Hours worked in Dec 2014" gen incomeDec2014=EM_2014Q25 if EM_2014Q25>=0 replace incomeDec2014=0 if workedDec2014==0 gen incomeDec2014_trunc=incomeDec2014 sum incomeDec2014, de replace incomeDec2014_trunc=r(p99) if incomeDec2014_trunc>r(p99) & incomeDec2014~=. label var incomeDec2014_trunc "Truncated Dec 2014 income" gen workedFeb2015=cond( EM_NOWQ26==1, 1, 0) if EM_NOWQ26~=. label var workedFeb2015 "Worked in February 2015" gen hoursFeb2015=EM_NOWQ27Q27_h replace hoursFeb2015=0 if workedFeb2015==0 label var hoursFeb2015 "Hours worked in last week in Feb 2015" gen incomeFeb2015=EM_NOWQ28 if EM_NOWQ28>=0 replace incomeFeb2015=0 if workedFeb2015==0 gen incomeFeb2015_trunc=incomeFeb2015 sum incomeFeb2015, de replace incomeFeb2015_trunc=r(p99) if incomeFeb2015>=r(p99) & incomeFeb2015~=. label var incomeFeb2015_trunc "Truncated Feb 2015 last week income" gen currentlylookingwork=cond(EM_NOWQ31==1, 1, 0) if EM_NOWQ31~=. label var currentlylookingwork "Currently looking for work" gen droppedbeforeplacement=DropedbeforePlacement=="True" gen placed=PlacedatFirmID~="" gen completedinternship=CompletedInternship=="True" * Measure of Internship Take-up gen takeupinternship=0 if experimentalsamplev3==1 replace takeupinternship=1 if StartedInternship1Yes==1 replace takeupinternship=1 if CompletedInternship=="True" replace takeupinternship=1 if PlacedatFirmID~="" **** Table comparing applicants to experimental sample and balance **** Individual Characteristics for test of balance and comparison cap drop female gen female=Gender=="Female" replace female=. if Gender=="" gen Aden=City=="Aden" replace Aden=. if City=="" gen ageB=2014-BirthYear sum ageB, de replace ageB=. if ageB==2014|ageB<=1 replace ageB=. if ageB<=5 gen driverlicense=DoyouhaveDrivingLicense==1 replace driverlicense=. if DoyouhaveDriving==0|DoyouhaveDriving==. gen allbusiness=Bucket==2 gen allengineering=Bucket==1 gen accountant=Specialization==300 gen marketing=Specialization==302 gen civilengineering=Specialization==322 gen english=Specialization==307 gen telecomengineering=Specialization==320 gen businessadmin=Specialization==299 gen canusecomputer=CanyouuseComputer==1 replace canusecomputer=. if CanyouuseComputer==0|CanyouuseComputer==. gen englishconverse=LanguageConversation1 if LanguageName1==2 for num 2/5: replace englishconverse=LanguageConversationX if LanguageNameX==2 gen universityeduc=Qualification==5 gen morecomputerexp=ExperienceDetails=="2" egen strata1=group(Specialization Aden) ************************* Table 1 ***************************************************** mat y = J(15,5,.) local k=1 foreach var of varlist female Aden ageB universityedu canusecomputer morecomputer englishconverse driverlicense allbusiness allengineering accountant businessadmin marketing english { sum `var' if ConsideredinthefirstRandomS==1 mat y[`k',1] = r(mean) sum `var' if round1Treat1==0 mat y[`k',2] = r(mean) sum `var' if round1Treat1==1 mat y[`k',3] = r(mean) areg `var' round1Treat1 if experimentalsamplev3==1, r a(strata1) test round1Treat1==0 mat y[`k', 4]=r(p) sum `var' if round1Treat1==1 & takeupintern==1 mat y[`k',5] = r(mean) local k=`k'+1 } count if ConsideredinthefirstRandomS==1 mat y[15,1]=r(N) count if round1Treat1==0 mat y[15,2]=r(N) count if round1Treat1==1 mat y[15,3]=r(N) count if round1Treat1==1 & takeupintern==1 mat y[15,5]=r(N) mat rownames y = female Aden ageB universityedu canusecomputer morecomputer englishconverse driverlicense allbusiness allengineering accountant businessadmin marketing english "Sample Size" mat colnames y = "All Applicants" "Control" "Treatment" "P-value" "Took Internship" mat2txt, matrix(y) saving("output\Table1.xls") replace **** Supply of Specializations *Group Specializations gen _Specialization=. replace _Specialization=299 if Specialization==299 replace _Specialization=302 if Specialization== 302 replace _Specialization=300 if Specialization== 300 replace _Specialization= 307 if Specialization== 307 replace _Specialization= 331 if Specialization== 331| Specialization== 410| Specialization== 317 replace _Specialization= 357 if Specialization== 357| Specialization== 415| Specialization== 368 replace _Specialization= 416 if Specialization== 416 replace _Specialization= 318 if Specialization== 318 replace _Specialization= 323 if Specialization== 323 replace _Specialization= 322 if Specialization== 322 replace _Specialization= 309 if Specialization==309| Specialization== 391| Specialization==388| Specialization==363| Specialization== 308| Specialization==311| Specialization==312| Specialization== 313| Specialization==316| Specialization== 324| Specialization==310| Specialization== 432| Specialization== 419| Specialization== 332| Specialization== 434| Specialization== 425| Specialization== 426| Specialization== 330| Specialization== 397| Specialization==407| Specialization== 408| Specialization== 418| Specialization== 389| Specialization== 370 replace _Specialization= 337 if Specialization== 337| Specialization==371| Specialization== 338| Specialization== 366 replace _Specialization= 374 if Specialization== 374| Specialization==358| Specialization== 377| Specialization== 361| Specialization== 392| Specialization== 340| Specialization== 412| Specialization== 420 replace _Specialization= 328 if Specialization== 328| Specialization==405| Specialization==327| Specialization==329| Specialization==385| Specialization== 427| Specialization== 306| Specialization== 325| Specialization== 383| Specialization== 421 replace _Specialization= 349 if Specialization== 349| Specialization==378| Specialization== 376| Specialization== 387 replace _Specialization= 305 if Specialization== 305| Specialization== 303| Specialization== 304 replace _Specialization= 319 if Specialization== 319| Specialization== 393 replace _Specialization= 320 if Specialization==320 replace _Specialization= 360 if Specialization== 360| Specialization==373| Specialization==352| Specialization== 314| Specialization== 390| Specialization== 424 replace _Specialization= 362 if Specialization== 362| Specialization==404| Specialization== 315| Specialization== 452| Specialization== 301| Specialization== 386| Specialization== 429| Specialization== 406| Specialization== 384| Specialization== 401| Specialization== 402| Specialization== 414 replace _Specialization= 409 if Specialization== 409| Specialization==394| Specialization==403| Specialization== 359| Specialization== 336| Specialization==413| Specialization== 343| Specialization== 395| Specialization== 335| Specialization==344| Specialization== 351| Specialization== 350| Specialization== 445| Specialization== 333 replace _Specialization= 417 if Specialization== 417| Specialization==334| Specialization== 380| Specialization== 326| Specialization== 347| Specialization== 398| Specialization== 365| Specialization== 324| Specialization==367| Specialization==346| Specialization== 430| Specialization== 399| Specialization== 369| Specialization== 411| Specialization== 379| Specialization== 348| Specialization== 422| Specialization== 435| Specialization== 423| Specialization== 375| Specialization== 447| Specialization== 321 replace _Specialization= 450 if Specialization== 450| Specialization==341| Specialization==433| Specialization== 441| Specialization==451| Specialization==442| Specialization==364| Specialization==439| Specialization==400| Specialization==372| Specialization==428| Specialization== 396| Specialization==441| Specialization==353| Specialization== 381| Specialization==356| Specialization==355| Specialization== 342 replace _Specialization=0 if Specialization==0 label define Specialization 0 "Undefined" label define Specialization 309 "Teaching", add label define Specialization 337 "Technician Mechanic", add label define Specialization 357 "Computer Programing", add label define Specialization 416 "Data Organization", add label define Specialization 318 "Computer Engineering", add label define Specialization 323 "Electrical Engineering", add label define Specialization 322 "Civil Engineering", add label define Specialization 302 "Marketing", add label define Specialization 300 "Accounting", add label define Specialization 307 "English", add label define Specialization 331 "Information Technology", add label define Specialization 299 "Business Administration", add label define Specialization 409 "Other Technical", add label define Specialization 417 "Other Engineering", add label define Specialization 360 "Medical Staff", add label define Specialization 320 "Communications Engineer", add label define Specialization 319 "Mechanical Engineering", add label define Specialization 305 "Doctor", add label define Specialization 349 "Management", add label define Specialization 328 "Economics", add label define Specialization 374 "Electric Technician", add label define Specialization 362 "Other Management", add label define Specialization 450 "Other", add label values _Specialization Specialization gen management=_Specialization==362|_Specialization==349 gen computerengineer=_Specialization==318 gen computerprogram=_Specialization==357 gen infotech=_Specialization==331 gen commengineer=_Specialization==320 gen otherspecs=allbusiness==0 & allengineering==0 gen teaching=_Specialization==309 gen medicine=_Specialization==305|_Specialization==360 ************************ Table 2 ******************************************************************** * Supply and Demand for Interns mat y = J(17,9,.) local k=1 foreach var of varlist allbusiness businessadmin accountant marketing management allengineering commengineer computerengineer civilengineer telecomengineer computerprogram infotech otherspecs english medicine teaching { sum `var' if ConsideredinthefirstRandomS==1 & female==0 mat y[`k',1] = r(mean) sum `var' if ConsideredinthefirstRandomS==1 & female==1 mat y[`k',2] = r(mean) sum `var' if ConsideredinthefirstRandomS==1 & female==0 & Aden==0 mat y[`k',3] = r(mean) sum `var' if ConsideredinthefirstRandomS==1 & female==1 & Aden==0 mat y[`k',4] = r(mean) sum `var' if ConsideredinthefirstRandomS==1 & female==0 & Aden==1 mat y[`k',5] = r(mean) sum `var' if ConsideredinthefirstRandomS==1 & female==1 & Aden==1 mat y[`k',6] = r(mean) sum `var' if takeup==1 mat y[`k',7] = r(mean) sum `var' if takeup==1 & Aden==0 mat y[`k',8] = r(mean) sum `var' if takeup==1 & Aden==1 mat y[`k',9] = r(mean) local k=`k'+1 } count if ConsideredinthefirstRandomS==1 & female==0 mat y[17,1]=r(N) count if ConsideredinthefirstRandomS==1 & female==1 mat y[17,2]=r(N) count if ConsideredinthefirstRandomS==1 & female==0 & Aden==0 mat y[17,3]=r(N) count if ConsideredinthefirstRandomS==1 & female==1 & Aden==0 mat y[17,4]=r(N) count if ConsideredinthefirstRandomS==1 & female==0 & Aden==1 mat y[17,5]=r(N) count if ConsideredinthefirstRandomS==1 & female==1 & Aden==1 mat y[17,6]=r(N) count if takeup==1 mat y[17,7]=r(N) count if takeup==1 & Aden==0 mat y[17,8]=r(N) count if takeup==1 & Aden==1 mat y[17,9]=r(N) mat rownames y = allbusiness businessadmin accountant marketing management allengineering commengineer computerengineer civilengineer telecomengineer computerprogram infotech otherspecs english medicine teaching "Sample Size" mat colnames y = "All Males" "All Females" "Sanaa Males" "Sanaa Females" "Aden Males" "Aden Females" "All Demand" "Sanaa Demand" "Aden Demand" mat2txt, matrix(y) saving("output\Table2a.xls") replace **** Employment Index for 2014 foreach var of varlist workedatall2014 nummonthsworked2014 permonthinc2014 permonthinc_trunc { sum `var' if experimentalsamplev3==1 local thismean = r(mean) local thissd = r(sd) di "`thismean'" di "`thissd'" cap drop z1_`var' gen z1_`var' = (`var'-`thismean')/(`thissd') } egen employindex = rowmean(z1_workedatall2014-z1_permonthinc_trunc) label var employindex "Aggregate Index of Employment Outcomes" **** Employment Index for 2015 foreach var of varlist workedDec2014 hoursworkedDec2014 incomeDec2014 incomeDec2014_trunc workedFeb2015 hoursFeb2015 incomeFeb2015 incomeFeb2015_trunc { sum `var' if experimentalsamplev3==1 local thismean = r(mean) local thissd = r(sd) di "`thismean'" di "`thissd'" cap drop z1_`var' gen z1_`var' = (`var'-`thismean')/(`thissd') } egen employindex2015 = rowmean(z1_workedatall2014-z1_permonthinc_trunc) label var employindex2015 "Aggregate Index of Employment Outcomes 2015" ********* Table 3 ******************************** *** ITT effects on job characteristics conditional on working at all in 2014 local i=1 eststo clear foreach var of varlist nummonthsworked2014 permonthinc2014 permonthinc_trunc privateemployer jobrelatedtostudy-idlejob { areg `var' round1Treat if experimentalsamplev3==1 & workedatall2014==1, r a(Strata) sum `var' if round1Treat==0 & experimentalsamplev3==1 & workedatall2014==1 estadd scalar mean=r(mean) eststo table3_`i' local i=`i'+1 } #delimit ; esttab table3_* using output\table3.csv, replace depvar legend label nonumbers nogaps b(%9.3f) se star(* 0.10 ** 0.05 *** 0.01) drop(_cons) stats(N mean, fmt(%9.0g %9.3f ) labels("Sample Size" "Control Mean" )) title("Table 3: ITT Impacts Conditional on Working in 2014") addnotes("""") ; #delimit cr ****************** Table 4 **************************************************** **** Employment Impacts During 2014 local i=1 eststo clear foreach var of varlist workedatall2014 nummonthsworked2014 permonthinc2014 permonthinc_trunc employindex { *** ITT areg `var' round1Treat if experimentalsamplev3==1, r a(Strata) sum `var' if round1Treat==0 & experimentalsamplev3==1 estadd scalar mean=r(mean) eststo table4a_`i' *** LATE xi: ivreg `var' (takeupinternship=round1Treat) i.Strata if experimentalsamplev3==1, r eststo table4b_`i' local i=`i'+1 } #delimit ; esttab table4a_* table4b_* using output\table4.csv, replace depvar legend label nonumbers nogaps b(%9.3f) se star(* 0.10 ** 0.05 *** 0.01) drop(_cons) stats(N mean, fmt(%9.0g %9.3f ) labels("Sample Size" "Control Mean" )) title("Table 4:Impacts on 2014 Employment") addnotes("""") ; #delimit cr ************** Table 5 *************************************************** ***** Gender Heterogeneity in Outcomes? * Impact during internship gen femaleB=Gender=="Female" gen round1Treat_femaleB=round1Treat*femaleB local i=1 eststo clear foreach var of varlist workedatall2014 nummonthsworked2014 permonthinc2014 permonthinc_trunc employindex { *** ITT areg `var' round1Treat round1Treat_femaleB femaleB if experimentalsamplev3==1, r a(Strata) sum `var' if round1Treat==0 & experimentalsamplev3==1 & femaleB==0 estadd scalar mean1=r(mean) sum `var' if round1Treat==0 & experimentalsamplev3==1 & femaleB==1 estadd scalar mean2=r(mean) eststo table5a_`i' local i=`i'+1 } #delimit ; esttab table5a_* using output\table5.csv, replace depvar legend label nonumbers nogaps b(%9.3f) se star(* 0.10 ** 0.05 *** 0.01) drop(_cons) stats(N mean1 mean2, fmt(%9.0g %9.3f ) labels("Sample Size" "Control Mean Males" "Control Mean Females" )) title("Table 5:Gender Impacts on 2014 Employment") addnotes("""") ; #delimit cr ************ Table 6 ************************************************ **** Post-Internship Impacts local i=1 eststo clear foreach var of varlist workedDec2014 hoursworkedDec2014 incomeDec2014 incomeDec2014_trunc workedFeb2015 hoursFeb2015 incomeFeb2015 incomeFeb2015_trunc employindex2015 { areg `var' round1Treat if experimentalsamplev3==1, r a(Strata) sum `var' if round1Treat==0 & experimentalsamplev3==1 estadd scalar mean=r(mean) eststo table6a_`i' xi: ivreg `var' (takeupinternship=round1Treat) i.Strata if experimentalsamplev3==1, r eststo table6b_`i' local i=`i'+1 } #delimit ; esttab table6a_* table6b_* using output\table6.csv, replace depvar legend label nonumbers nogaps b(%9.3f) se star(* 0.10 ** 0.05 *** 0.01) drop(_cons) stats(N mean, fmt(%9.0g %9.3f ) labels("Sample Size" "Control Mean" )) title("Table 6: Impacts Post-Intervention") addnotes("""") ; #delimit cr ****************** Table 7 ************************************************** local i=1 eststo clear foreach var of varlist workedDec2014 workedFeb2015 hoursworkedDec2014 hoursFeb2015 incomeDec2014 incomeFeb2015 incomeDec2014_trunc incomeFeb2015_trunc employindex2015 { areg `var' round1Treat round1Treat_femaleB femaleB if experimentalsamplev3==1, r a(Strata) sum `var' if round1Treat==0 & experimentalsamplev3==1 & femaleB==0 estadd scalar mean1=r(mean) sum `var' if round1Treat==0 & experimentalsamplev3==1 & femaleB==1 estadd scalar mean2=r(mean) eststo table7a_`i' local i=`i'+1 } #delimit ; esttab table7a_* using output\table7.csv, replace depvar legend label nonumbers nogaps b(%9.3f) se star(* 0.10 ** 0.05 *** 0.01) drop(_cons) stats(N mean1 mean2 , fmt(%9.0g %9.3f ) labels("Sample Size" "Control Mean Males" "Control Mean Females" )) title("Table 7: Gender Impacts Post-Intervention") addnotes("""") ; #delimit cr ****************Appendix 2 **************************************************** **** Panel Data Analysis on Dec and Feb work to increase power, also try standardized employment variable (average of work, hours, income) preserve rename workedDec2014 worked1 rename workedFeb2015 worked2 rename hoursworkedDec2014 hours1 rename hoursFeb2015 hours2 rename incomeDec2014 income1 rename incomeFeb2015 income2 rename incomeDec2014_trunc income_trunc1 rename incomeFeb2015_trunc income_trunc2 keep if experimentalsamplev3==1 duplicates drop ID, force reshape long worked hours income income_trunc, i(ID) j(time) gen Febdummy=time==2 local i=1 eststo clear foreach var of varlist worked hours income income_trunc { areg `var' round1Treat Febdummy if experimentalsamplev3==1, r a(Strata) cluster(ID) sum `var' if round1Treat==0 & experimentalsamplev3==1 estadd scalar mean=r(mean) eststo app2_`i' local i=`i'+1 } #delimit ; esttab app2_* using output\app2.csv, replace depvar legend label nonumbers nogaps b(%9.3f) se star(* 0.10 ** 0.05 *** 0.01) drop(_cons) stats(N mean, fmt(%9.0g %9.3f ) labels("Sample Size" "Control Mean" )) title("Appendix 2: ITT Impacts Post-Intervention in Panel") addnotes("""") ; #delimit cr restore