************************************************************************************ ************************************************************************************ ************************************************************************************ **** **** **** Take Your Time to Grow: A Field Experiment on the Hiring of Youths **** **** Dorothea KŸbler, Julia Schmid, Robert StŸber **** **** German Econ Rev. 2019, doi:10.1111/geer.12188 **** **** **** ************************************************************************************ ************************************************************************************ ************************************************************************************ // ::::[[[PUT IN PATH OF YOUR STATA FOLDER HERE]]]:::: cd "/Users/robertstueber/Dropbox/Take your time to grow" use Take_your_time_to_grow.dta, replace set more off ************************************************************************************ * Data preparation and coding of response patterns ************************************************************************************ sort wave idinsample generate double id = _n generate double complete = 0 replace complete = 1 if invitation1!=. & invitation2!=. & invitation3!=. generate double consistent = 1 replace consistent = 0 if invita1 == . & ( invita2 == 0 | invita3 == 0) replace consistent = 0 if invita2 == . & ( invita1 == 0 | invita3 == 0) replace consistent = 0 if invita3 == . & ( invita1 == 0 | invita2 == 0) ************************************************************************************ * Table A2 Main properties of the dataset ************************************************************************************ * Row (1) and (2): count if wave == 1 global nfappl1 = r(N) global nappl1 = 3*r(N) di "Wave 1: No. of firms applied to " $nfappl1 di "Wave 1: (no. of applications): " $nappl1 count if wave == 2 global nfappl2 = r(N) global nappl2 = 3*r(N) di "Wave 2: No. of firms applied to " $nfappl2 di "Wave 2: (no. of applications): " $nappl2 count global nfappl = r(N) global nappl = 3*r(N) di "Total: No. of firms applied to " $nfappl di "Total: (no. of applications): " $nappl * Row (3) and (4): count if wave==1 & consistent == 1 global nfcf1 = r(N) global nacf1 = 3*r(N) count if wave==2 & consistent == 1 global nfcf2 = r(N) global nacf2 = 3*r(N) count if wave & consistent == 1 global nfcf = r(N) global nacf = 3*r(N) noi di "Wave 1: No. of firms (consistent feedback) " $nfcf1 noi di "Wave 1: [proportion] " %6.1f $nfcf1 /($nfappl1)*100 "%" noi di "Wave 2: No. of firms (consistent feedback) " $nfcf2 noi di "Wave 2: [proportion] " %6.1f $nfcf2 /($nfappl2)*100 "%" noi di "Total: No. of firms (consistent feedback) " $nfcf noi di "Total: [proportion] " %6.1f $nfcf /($nfappl)*100 "%" * Row (5) and (6): count if invitation1 == 1 & wave == 1 global ninvitation1 = r(N) count if invitation2 == 1 & wave == 1 global ninvitation1 = $ninvitation1 + r(N) count if invitation3 == 1 & wave == 1 global ninvitation1 = $ninvitation1 + r(N) count if invitation1 == 1 & wave == 2 global ninvitation2 = r(N) count if invitation2 == 1 & wave == 2 global ninvitation2 = $ninvitation2 + r(N) count if invitation3 == 1 & wave == 2 global ninvitation2 = $ninvitation2 + r(N) count if invitation1 == 1 global ninvitation = r(N) count if invitation2 == 1 global ninvitation = $ninvitation + r(N) count if invitation3 == 1 global ninvitation = $ninvitation + r(N) noi di "Wave 1: No. of invitations (all applications) " $ninvitation1 noi di "Wave 1: [proportion] " %6.1f $ninvitation1/($nappl1)*100 "%" noi di "Wave 2: No. of invitations (all applications) " $ninvitation2 noi di "Wave 2: [proportion] " %6.1f $ninvitation2/($nappl2)*100 "%" noi di "Total: No. of invitations (all applications) " $ninvitation noi di "Total: [proportion] " %6.1f $ninvitation/($nappl)*100 "%" * Row (7) and (8): count if invitation1 == 1 & wave == 1 & consistent==1 global ncinvitation1 = r(N) count if invitation2 == 1 & wave == 1 & consistent==1 global ncinvitation1 = $ncinvitation1 + r(N) count if invitation3 == 1 & wave == 1 & consistent==1 global ncinvitation1 = $ncinvitation1 + r(N) count if invitation1 == 1 & wave == 2 & consistent==1 global ncinvitation2 = r(N) count if invitation2 == 1 & wave == 2 & consistent==1 global ncinvitation2 = $ncinvitation2 + r(N) count if invitation3 == 1 & wave == 2 & consistent==1 global ncinvitation2 = $ncinvitation2 + r(N) count if invitation1 == 1 & consistent==1 global ncinvitation = r(N) count if invitation2 == 1 & consistent==1 global ncinvitation = $ncinvitation + r(N) count if invitation3 == 1 & consistent==1 global ncinvitation = $ncinvitation + r(N) noi di "Wave 1: No. of invitations (consistent feedback) " $ncinvitation1 noi di "Wave 1: [proportion] " %6.1f $ncinvitation1/($nacf1)*100 "%" noi di "Wave 2: No. of invitations (consistent feedback) " $ncinvitation2 noi di "Wave 2: [proportion] " %6.1f $ncinvitation2/($nacf2)*100 "%" noi di "Total: No. of invitations (consistent feedback) " $ncinvitation noi di "Total: [proportion] " %6.1f $ncinvitation/($nacf)*100 "%" /* Testing for a difference in invitation rates between the sample consisting of firms with consistent responses and the sample of all firms. */ * Wave 1 tabi 194 194\ 151 139, exact * Wave 2 tabi 116 115\ 286 251, exact * Total tabi 310 309\ 437 390, exact /* Testing whether firms that gave consistent feedback are different than the average firm in the full sample. */ tab firmstype consistent, exact tab kindapplication consistent, exact ttest employers, by(consistent) /* Quantifying the overlap of firms between the two waves. */ generate double overlap = 0 // replace overlap if tab metaid levelsof metaid, local(levels) foreach l of local levels { count if metaid == `l' if r(N) > 1 { replace overlap = 1 if metaid == `l' // noi di "metaid ; `l' ; " r(N) } } tab overlap preserve drop if consistent == 0 replace invita1 = 0 if invita1 == . replace invita2 = 0 if invita2 == . replace invita3 = 0 if invita3 == . generate double dwave2 = 0 replace dwave2 = 1 if wave == 2 ************************************************************************************ * Figure A1 Invitation rates of the three applicant types ************************************************************************************ /* The figure was created using excel: */ forvalues i=1(1)3 { sum invita`i' if consistent == 1 sum invita`i' if consistent == 1 & wave==1 sum invita`i' if consistent == 1 & wave==2 } ************************************************************************************ * Table A3 Results of McNemar tests ************************************************************************************ * Column (1) symmetry invita2 invita3 if wave==1 symmetry invita1 invita2 if wave==1 symmetry invita1 invita3 if wave==1 * Column (2) symmetry invita2 invita3 if wave==2 symmetry invita1 invita2 if wave==2 symmetry invita1 invita3 if wave==2 * Column (3) symmetry invita2 invita3 symmetry invita1 invita2 symmetry invita1 invita3 restore /* McNemar tests applied to the data of both waves excluding overlapping firms in wave 2 [wave 1] */ forvalues i=1(1)2 { preserve drop if consistent == 0 replace invita1 = 0 if invita1 == . replace invita2 = 0 if invita2 == . replace invita3 = 0 if invita3 == . drop if overlap == 1 & wave == `i' symmetry invita2 invita3 symmetry invita1 invita2 symmetry invita1 invita3 restore } ************************************************************************************ * Table A6 Invitation rates by fictitious applicant profile and wave ************************************************************************************ preserve drop if consistent == 0 replace invitation1 = 0 if invitation1 == . replace invitation2 = 0 if invitation2 == . replace invitation3 = 0 if invitation3 == . * Row (1) noi di "WAVE 1" summarize invitation1 if wave == 1 noi di "invitation1: ;" %6.3f r(mean) " ; " %5.3f r(sd)/sqrt(r(N)) " ; " %6.0f r(N) summarize invitation2 if wave == 1 noi di "invitation2: ;" %6.3f r(mean) " ; " %5.3f r(sd)/sqrt(r(N)) " ; " %6.0f r(N) summarize invitation3 if wave == 1 noi di "invitation3: ;" %6.3f r(mean) " ; " %5.3f r(sd)/sqrt(r(N)) " ; " %6.0f r(N) * Row (2) noi di "WAVE 2" summarize invitation1 if wave == 2 noi di "invitation1: ;" %6.3f r(mean) " ; " %5.3f r(sd)/sqrt(r(N)) " ; " %6.0f r(N) summarize invitation2 if wave == 2 noi di "invitation2: ;" %6.3f r(mean) " ; " %5.3f r(sd)/sqrt(r(N)) " ; " %6.0f r(N) summarize invitation3 if wave == 2 noi di "invitation3: ;" %6.3f r(mean) " ; " %5.3f r(sd)/sqrt(r(N)) " ; " %6.0f r(N) /* McNemar tests: Testing for a difference in the likelhood of receiving an invitation between the three fictitious applicants. */ * Column (1): symmetry invitation1 invitation2 if wave==1 noi di %6.4f r(p) " ; " %6.0f r(N_pair) symmetry invitation1 invitation2 if wave==2 noi di %6.4f r(p) " ; " %6.0f r(N_pair) * Column (2): symmetry invitation1 invitation3 if wave==1 noi di %6.4f r(p) " ; " %6.0f r(N_pair) symmetry invitation1 invitation3 if wave==2 noi di %6.4f r(p) " ; " %6.0f r(N_pair) * Column (3): symmetry invitation2 invitation3 if wave==1 noi di %6.4f r(p) " ; " %6.0f r(N_pair) symmetry invitation2 invitation3 if wave==2 noi di %6.4f r(p) " ; " %6.0f r(N_pair) restore ************************************************************************************ * Table A4 OLS regression for invitations of applicants ************************************************************************************ preserve drop if consistent == 0 replace invita1 = 0 if invita1 == . replace invita2 = 0 if invita2 == . replace invita3 = 0 if invita3 == . generate double dwave2 = 0 replace dwave2 = 1 if wave == 2 reshape long invita, i(id) j(applicationtype) label variable applicationtype "1=neu, 2=Alt+ , 3=Alt-" generate double da1 = 0 replace da1 = 1 if applicationtype == 1 generate double da2 = 0 replace da2 = 1 if applicationtype == 2 generate double da3 = 0 replace da3 = 1 if applicationtype == 3 generate double da1xdwave2 = da1*dwave2 generate double da3xdwave2 = da3*dwave2 label variable dwave2 "Indicator for wave 2" label variable da1 "Indicator for new applicant" label variable da2 "Indicator for old applicant with prevocational training" label variable da3 "Indicator for old applicant without prevocational training" label variable da1xdwave2 "Interaction for new applicant and wave 2" label variable da3xdwave2 "Interaction for old applicant without prevocational training and wave 2" * Column (1) reg invita da1 da3 , cluster(metaid) * Column (2) reg invita da1 da3 dwave2, cluster(metaid) * Column (3) reg invita da1 da3 dwave2 da1xdwave2 da3xdwave2, vce(cluster metaid) test da3=0 test da3=da1 test da3+da3xdwave2=0 ************************************************************************************ * Table A5 Heterogeneity analysis ************************************************************************************ * Panel Firm Size tab size * beta Old xi: reg invita i.da1 i.da3*i.size da3 dwave2, cluster(metaid) test _Ida3_1=-_Ida3Xsiz_1_1 scalar eff=_b[_Ida3_1]+_b[_Ida3Xsiz_1_1] di eff test _Ida3_1=-_Ida3Xsiz_1_2 scalar eff=_b[_Ida3_1]+_b[_Ida3Xsiz_1_2] di eff test _Ida3_1=-_Ida3Xsiz_1_3 scalar eff=_b[_Ida3_1]+_b[_Ida3Xsiz_1_3] di eff * beta New xi: reg invita i.da1*i.size da3 dwave2, cluster(metaid) test _Ida1_1=-_Ida1Xsiz_1_1 scalar eff=_b[_Ida1_1]+_b[_Ida1Xsiz_1_1] di eff test _Ida1_1=-_Ida1Xsiz_1_2 scalar eff=_b[_Ida1_1]+_b[_Ida1Xsiz_1_2] di eff test _Ida1_1=-_Ida1Xsiz_1_3 scalar eff=_b[_Ida1_1]+_b[_Ida1Xsiz_1_3] di eff * Panel Firm type tab firmstype * beta Old xi: reg invita i.da1 i.da3*i.firmstype da3 dwave2, cluster(metaid) test _Ida3_1=-_Ida3Xfir_1_1 scalar eff=_b[_Ida3_1]+_b[_Ida3Xfir_1_1] di eff * beta New xi: reg invita i.da1*i.firmstype da3 dwave2, cluster(metaid) test _Ida1_1=-_Ida1Xfir_1_1 scalar eff=_b[_Ida1_1]+_b[_Ida1Xfir_1_1] di eff * Panel Application format tab kindapplication * beta Old xi: reg invita i.da1 i.da3*i.kindapplication da3 dwave2, cluster(metaid) test _Ida3_1=-_Ida3Xkin_1_2 test _Ida3_1=-_Ida3Xkin_1_3 scalar eff=_b[_Ida3_1]+_b[_Ida3Xkin_1_2] di eff scalar eff=_b[_Ida3_1]+_b[_Ida3Xkin_1_3] di eff * beta New xi: reg invita i.da1*i.kindapplication da3 dwave2, cluster(metaid) test _Ida1_1=-_Ida1Xkin_1_2 test _Ida1_1=-_Ida1Xkin_1_3 scalar eff=_b[_Ida1_1]+_b[_Ida1Xkin_1_2] di eff scalar eff=_b[_Ida1_1]+_b[_Ida1Xkin_1_3] di eff * Industry classes tab industry capture xi: reg invita i.da1 da3 dwave2 if industry==1, cluster(metaid) xi: reg invita i.da1 da3 dwave2 if industry==2, cluster(metaid) capture xi: reg invita i.da1 da3 dwave2 if industry==3, cluster(metaid) xi: reg invita i.da1 da3 dwave2 if industry==4, cluster(metaid) xi: reg invita i.da1 da3 dwave2 if industry==5, cluster(metaid) xi: reg invita i.da1 da3 dwave2 if industry==6, cluster(metaid) capture xi: reg invita i.da1 da3 dwave2 if industry==7, cluster(metaid) xi: reg invita i.da1 da3 dwave2 if industry==8, cluster(metaid) ************************************************************************************ * Table A7 Probit regression for invitations of applicants ************************************************************************************ * Column (1) probit invita da1 da3, cluster(metaid) margins, dydx(da1 da3) * Column (2) probit invita da1 da3 dwave2, cluster(metaid) margins, dydx(da1 da3 dwave2) * Column (3) probit invita da1 da3 dwave2 da1xdwave2 da3xdwave2, vce(cluster metaid) margins, dydx(da1 da3 dwave2 da1xdwave2 da3xdwave2) restore ************************************************************************************ * Table A8 Probit regression for invitations of applicants ************************************************************************************ preserve drop if complete == 0 generate double dwave2 = 0 replace dwave2 = 1 if wave == 2 reshape long invita, i(id) j(applicationtype) label variable applicationtype "1=neu, 2=Alt+ , 3=Alt-" generate double da1 = 0 replace da1 = 1 if applicationtype == 1 generate double da2 = 0 replace da2 = 1 if applicationtype == 2 generate double da3 = 0 replace da3 = 1 if applicationtype == 3 generate double da1xdwave2 = da1*dwave2 generate double da3xdwave2 = da3*dwave2 label variable dwave2 "Indicator for wave 2" label variable da1 "Indicator for new applicant" label variable da2 "Indicator for old applicant with prevocational training" label variable da3 "Indicator for old applicant without prevocational training" label variable da1xdwave2 "Interaction for new applicant and wave 2" label variable da3xdwave2 "Interaction for old applicant without prevocational training and wave 2" * Column (1) probit invita da1 da3, cluster(metaid) margins, dydx(da1 da3) * Column (2) probit invita da1 da3 dwave2, cluster(metaid) margins, dydx(da1 da3 dwave2) * Column (3) probit invita da1 da3 dwave2 da1xdwave2 da3xdwave2, vce(cluster metaid) margins, dydx(da1 da3 dwave2 da1xdwave2 da3xdwave2) restore ************************************************************************************ * Table A9 Probit regression for invitations of applicants ************************************************************************************ preserve generate double dwave2 = 0 replace dwave2 = 1 if wave == 2 reshape long invita, i(id) j(applicationtype) label variable applicationtype "1=neu, 2=Alt+ , 3=Alt-" generate double da1 = 0 replace da1 = 1 if applicationtype == 1 generate double da2 = 0 replace da2 = 1 if applicationtype == 2 generate double da3 = 0 replace da3 = 1 if applicationtype == 3 generate double da1xdwave2 = da1*dwave2 generate double da3xdwave2 = da3*dwave2 label variable dwave2 "Indicator for wave 2" label variable da1 "Indicator for new applicant" label variable da2 "Indicator for old applicant with prevocational training" label variable da3 "Indicator for old applicant without prevocational training" label variable da1xdwave2 "Interaction for new applicant and wave 2" label variable da3xdwave2 "Interaction for old applicant without prevocational training and wave 2" * Column (1) probit invita da1 da3, cluster(metaid) margins, dydx(da1 da3) * Column (2) probit invita da1 da3 dwave2, cluster(metaid) margins, dydx(da1 da3 dwave2) * Column (3) probit invita da1 da3 dwave2 da1xdwave2 da3xdwave2, vce(cluster metaid) margins, dydx(da1 da3 dwave2 da1xdwave2 da3xdwave2) restore ************************************************************************************ * END ************************************************************************************