capture log close log using des_base.log,replace text * REPLICATES DESCRIPTIVE STATS AND BASELINE ESTIMATES CONTAINED IN: * ICHINO, A., F. MEALLI, AND T. NANNICINI * FROM TEMPORARY HELP JOBS TO PERMANENT EMPLOYMENT: WHAT CAN WE LEARN FROM MATCHING ESTIMATORS AND THEIR SENSITIVITY? * JOURNAL OF APPLIED ECONOMETRICS, FORTHCOMING * USES DATA FILES: TEMPWORK.DTA, MATTOSC.DTA, MATSICI.DTA di "log file printed on $S_DATE at $S_TIME" set more off program drop _all macro drop _all # delimit; set matsize 400; tempfile tmp1 tmp2 tmp3; use tempwork, clear; program define riga3; matrix rig`1' = J(1,6,0); quietly sum `1' if treat==1&tosc==1; scalar r1=r(mean); quietly sum `1' if treat==0&tosc==1; scalar r2=r(mean); preserve; use mattosc,clear; quietly sum `1' if treat==0; scalar r3=r(mean); restore; quietly sum `1' if treat==1&sici==1; scalar r4=r(mean); quietly sum `1' if treat==0&sici==1; scalar r5=r(mean); preserve; use matsici,clear; quietly sum `1' if treat==0; scalar r6=r(mean); restore; matrix rig`1'[1,1]=r1; matrix rig`1'[1,2]=r2; matrix rig`1'[1,3]=r3; matrix rig`1'[1,4]=r4; matrix rig`1'[1,5]=r5; matrix rig`1'[1,6]=r6; scalar drop _all; end; ****** TABLE 1, FIRST PART - DESCRIPTIVE STATS FOR THE WHOLE SAMPLE; matrix tab1 = J(16,6,0); riga3 age2; riga3 male; riga3 single; riga3 child; riga3 dist; riga3 fysch; riga3 fblu; riga3 femp1; riga3 ysch; riga3 pvoto; riga3 train1; matrix tab1[1,1]=rigage2; matrix tab1[2,1]=rigmale; matrix tab1[3,1]=rigsingle; matrix tab1[4,1]=rigchild; matrix tab1[5,1]=rigfysch; matrix tab1[6,1]=rigfblu; matrix tab1[7,1]=rigfemp1; matrix tab1[8,1]=rigysch; matrix tab1[9,1]=rigpvoto; matrix tab1[10,1]=rigtrain1; matrix tab1[11,1]=rigdist; matrix rignum1=J(1,6,0); count if treat==1&tosc==1; matrix rignum1[1,1]=r(N); count if treat==0&tosc==1; matrix rignum1[1,2]=r(N); preserve; use mattosc,clear; count if treat==0; matrix rignum1[1,3]=r(N); restore; count if treat==1&sici==1; matrix rignum1[1,4]=r(N); count if treat==0&sici==1; matrix rignum1[1,5]=r(N); preserve; use matsici,clear; count if treat==0; matrix rignum1[1,6]=r(N); restore; matrix tab1[16,1]=rignum1; riga3 nyu1; riga3 emp1; riga3 unemp1; riga3 nofl1; matrix tab1[12,1]=rignyu1; matrix tab1[13,1]=rigemp1; matrix tab1[14,1]=rigunemp1; matrix tab1[15,1]=rignofl1; matrix list tab1, format(%9.2f); ****** TABLE 1, SECOND PART - DESCRIPTIVE STATS FOR THE EMPLOYED IN 2000; preserve; keep if emp1==1; matrix tab2 = J(11,6,0); riga3 perm1; riga3 atyp1; riga3 blu1; riga3 white1; riga3 self1; riga3 manuf1; riga3 serv1; riga3 other1; riga3 wage1b; riga3 hour1; matrix tab2[1,1]=rigperm1; matrix tab2[2,1]=rigatyp1; matrix tab2[3,1]=rigblu1; matrix tab2[4,1]=rigwhite1; matrix tab2[5,1]=rigself1; matrix tab2[6,1]=rigmanuf1; matrix tab2[7,1]=rigserv1; matrix tab2[8,1]=rigother1; matrix tab2[9,1]=rigwage1b; matrix tab2[10,1]=righour1; matrix rignum2=J(1,6,0); count if treat==1&tosc==1; matrix rignum2[1,1]=r(N); count if treat==0&tosc==1; matrix rignum2[1,2]=r(N); matrix rignum2[1,3]=.; count if treat==1&sici==1; matrix rignum2[1,4]=r(N); count if treat==0&sici==1; matrix rignum2[1,5]=r(N); matrix rignum2[1,6]=.; matrix tab2[11,1]=rignum2; restore; preserve; use mattosc,clear; keep if emp1==1; sum perm1 if treat==0; matrix tab2[1,3]=r(mean); sum atyp1 if treat==0; matrix tab2[2,3]=r(mean); sum blu1 if treat==0; matrix tab2[3,3]=r(mean); sum white1 if treat==0; matrix tab2[4,3]=r(mean); sum self1 if treat==0; matrix tab2[5,3]=r(mean); sum manuf1 if treat==0; matrix tab2[6,3]=r(mean); sum serv1 if treat==0; matrix tab2[7,3]=r(mean); sum other1 if treat==0; matrix tab2[8,3]=r(mean); sum wage1b if treat==0; matrix tab2[9,3]=r(mean); sum hour1 if treat==0; matrix tab2[10,3]=r(mean); count if treat==0; matrix tab2[11,3]=r(N); restore; preserve; use matsici,clear; keep if emp1==1; sum perm1 if treat==0; matrix tab2[1,6]=r(mean); sum atyp1 if treat==0; matrix tab2[2,6]=r(mean); sum blu1 if treat==0; matrix tab2[3,6]=r(mean); sum white1 if treat==0; matrix tab2[4,6]=r(mean); sum self1 if treat==0; matrix tab2[5,6]=r(mean); sum manuf1 if treat==0; matrix tab2[6,6]=r(mean); sum serv1 if treat==0; matrix tab2[7,6]=r(mean); sum other1 if treat==0; matrix tab2[8,6]=r(mean); sum wage1b if treat==0; matrix tab2[9,6]=r(mean); sum hour1 if treat==0; matrix tab2[10,6]=r(mean); count if treat==0; matrix tab2[11,6]=r(N); restore; matrix list tab2, format(%9.2f); ****** TABLE 2 - BASELINE ESTIMATES; gen dist2=dist^2; gen self1li=self1*li; * TUSCANY; pscore treat gr li pi lu male single age2 dloc01 dloc02 child ysch pvoto train1 nyu1 emp1 unemp1 perm1 blu1 self1 manuf1 serv1 wage1 hour1 fysch femp fblu dist dist2 self1li if tosc==1,comsup level(0.001) pscore(pt); attnd out1 treat gr li pi lu male single age2 dloc01 dloc02 child ysch pvoto train1 nyu1 emp1 unemp1 perm1 blu1 self1 manuf1 serv1 wage1 hour1 fysch femp fblu dist dist2 self1li if tosc==1, comsup pscore(pt) matchvar(matchtusc) matchdta(matchtusc) id(id); attnd out1 treat gr li pi lu male single age2 dloc01 dloc02 child ysch pvoto train1 nyu1 emp1 unemp1 perm1 blu1 self1 manuf1 serv1 wage1 hour1 fysch femp fblu dist dist2 self1li if tosc==1&(pt>0.33&pt<0.67), comsup pscore(pt); attnd out1 treat gr li pi lu male single age2 dloc01 dloc02 child ysch pvoto train1 nyu1 emp1 unemp1 perm1 blu1 self1 manuf1 serv1 wage1 hour1 fysch femp fblu dist dist2 self1li if tosc==1&male==1, comsup; attnd out1 treat gr li pi lu male single age2 dloc01 dloc02 child ysch pvoto train1 nyu1 emp1 unemp1 perm1 blu1 self1 manuf1 serv1 wage1 hour1 fysch femp fblu dist dist2 self1li if tosc==1&male==0, comsup; gen young2b= age2<30; attnd out1 treat gr li pi lu male single age2 dloc01 dloc02 child ysch pvoto train1 nyu1 emp1 unemp1 perm1 blu1 self1 manuf1 serv1 wage1 hour1 fysch femp fblu dist dist2 self1li if tosc==1&young2b==1, comsup; attnd out1 treat gr li pi lu male single age2 dloc01 dloc02 child ysch pvoto train1 nyu1 emp1 unemp1 perm1 blu1 self1 manuf1 serv1 wage1 hour1 fysch femp fblu dist dist2 self1li if tosc==1&young2b==0, comsup; * SICILY; pscore treat ct tp pa male single age2 child dloc01 dloc02 ysch pvoto train1 nyu1 emp1 unemp1 perm1 blu1 self1 manuf1 serv1 wage1 hour1 fysch femp fblu dist if tosc==0,comsup level(0.001) pscore(ps); attnd out1 treat ct tp pa male single age2 child dloc01 dloc02 ysch pvoto train1 nyu1 emp1 unemp1 perm1 blu1 self1 manuf1 serv1 wage1 hour1 fysch femp fblu dist if tosc==0, comsup pscore(ps) matchvar(matchsici) matchdta(matchsici) id(id); attnd out1 treat ct tp pa male single age2 child dloc01 dloc02 ysch pvoto train1 nyu1 emp1 unemp1 perm1 blu1 self1 manuf1 serv1 wage1 hour1 fysch femp fblu dist if tosc==0&(ps>0.33&ps<0.67), comsup; attnd out1 treat ct tp pa male single age2 child dloc01 dloc02 ysch pvoto train1 nyu1 emp1 unemp1 perm1 blu1 self1 manuf1 serv1 wage1 hour1 fysch femp fblu dist if tosc==0&male==1, comsup; attnd out1 treat ct tp pa male single age2 child dloc01 dloc02 ysch pvoto train1 nyu1 emp1 unemp1 perm1 blu1 self1 manuf1 serv1 wage1 hour1 fysch femp fblu dist if tosc==0&male==0, comsup; attnd out1 treat ct tp pa male single age2 child dloc01 dloc02 ysch pvoto train1 nyu1 emp1 unemp1 perm1 blu1 self1 manuf1 serv1 wage1 hour1 fysch femp fblu dist if tosc==0&young2b==1, comsup; attnd out1 treat ct tp pa male single age2 child dloc01 dloc02 ysch pvoto train1 nyu1 emp1 unemp1 perm1 blu1 self1 manuf1 serv1 wage1 hour1 fysch femp fblu dist if tosc==0&young2b==0, comsup; log close;