clear set mem 2g set matsize 800 *** construction of the labor composite and implementation of regressions in table 5 **** cd H:\Giovanni\MyPapers\Peri_Ottaviano_aggregate\REDUX_2008\empirics\regressions_IPUMS use supply_groups_60_06_specification_1.dta sort year edu exp save employment, replace clear use supply_wage_60_06_specification_1 sort year edu exp merge year edu exp using employment sort edu year **** DUMMIES gen eduyear=year+edu gen eduexp=(edu*10)+exp gen expyear=year*10+exp tab eduyear, gen (edy) tab eduexp, gen(edex) tab expyear, gen(exy) *** supply index for edu-exp group gen howo_us=howo_ma_us+howo_fe_us gen howo_for=howo_ma_for+howo_fe_for gen howo_male=howo_ma_us+howo_ma_for gen howo_female=howo_fe_us+howo_fe_for gen lnhowo=ln(howo_ma_us+howo_fe_us+howo_ma_for+howo_fe_for) gen lnhowo_for=ln(howo_fe_for+howo_ma_for) gen lnhowo_male=ln(howo_ma_us+howo_ma_for) gen lnhowo_male_for=ln(howo_ma_for) gen lnhowo_female=ln(howo_fe_us+howo_fe_for) gen lnhowo_female_for=ln(howo_fe_for) ** employed bodies in log variables gen empl_us=empl_ma_us+empl_fe_us gen empl_for=empl_ma_for+empl_fe_for gen lnempl=ln(empl_ma_us+empl_fe_us+empl_ma_for+empl_fe_for) gen lnempl_male=ln(empl_ma_us+empl_ma_for) gen lnempl_female=ln(empl_fe_us+empl_fe_for) gen lnempl_for=ln(empl_ma_for+empl_fe_for) gen lnempl_ma_for=ln(empl_ma_for) gen lnempl_fe_for=ln(empl_fe_for) ******************* * generate variables for the 1/sigma_immi regression*** gen lnrel_hours=ln((howo_ma_for+howo_fe_for)/(howo_ma_us+howo_fe_us)) gen lnrel_hours_male=ln(howo_ma_for/howo_ma_us) gen lnrel_hours_female=ln(howo_fe_for/howo_fe_us) gen lnrel_empl=ln((empl_ma_for+empl_fe_for)/(empl_ma_us+empl_fe_us)) gen lnrel_empl_male=ln(empl_ma_for/empl_ma_us) gen lnrel_empl_female=ln(empl_fe_for/empl_fe_us) gen weekly_for=(weekly_ma_for*howo_ma_for+weekly_fe_for*howo_fe_for)/(howo_ma_for+howo_fe_for) gen weekly_us=(weekly_ma_us*howo_ma_us+weekly_fe_us*howo_fe_us)/(howo_ma_us+howo_fe_us) gen lnrel_weekly= ln(weekly_for/weekly_us) gen lnrel_weekly_male= ln(weekly_ma_for/weekly_ma_us) gen lnrel_weekly_female= ln(weekly_fe_for/weekly_fe_us) ** basic 1/sigma_immi ragression male, construct the theta xi:reg lnrel_weekly_male lnrel_hours_male i.edu*i.exp [aw=employment], robust cluster(eduexp) predict e_male, resid gen base_kj_male= lnrel_weekly_male +0.065*lnrel_hours_male-e_male gen theta_Fkj_male=exp(base_kj_male)/(1+exp(base_kj_male)) ** basic 1/sigma_immi regression female, construct the theta xi:reg lnrel_weekly_female lnrel_hours_female i.edu*i.exp [aw=employment], robust cluster(eduexp) predict e_female, resid gen base_kj_female= lnrel_weekly_female +0.058*lnrel_hours_female-e_female gen theta_Fkj_female=exp(base_kj_female)/(1+exp(base_kj_female)) ** basic 1/sigma_immi regression pooled, construct the theta xi:reg lnrel_weekly lnrel_hours i.edu*i.exp [aw=employment], robust cluster(eduexp) predict e_pool, resid gen base_kj_pool= lnrel_weekly +0.044*lnrel_hours-e_pool gen theta_Fkj_pool=exp(base_kj_pool)/(1+exp(base_kj_pool)) ** construction of L_kjt in the case of imperfect subst gen N_kj_male_hours=[theta_Fkj_male*(howo_ma_for^0.935)+(1-theta_Fkj_male)*(howo_ma_us^0.935)]^(1.069) gen N_kj_female_hours=[theta_Fkj_female*(howo_fe_for^0.942)+(1-theta_Fkj_female)*(howo_fe_us^0.942)]^(1.061) gen N_kj_pooled_hours=[theta_Fkj_pool*(howo_for^0.956)+(1-theta_Fkj_pool)*(howo_us^0.956)]^(1.046) gen N_kj_pooled_employment=[theta_Fkj_pool*(empl_for^0.956)+(1-theta_Fkj_pool)*(empl_us^0.956)]^(1.046) gen lnN_kj_male_hours=ln(N_kj_male_hours) gen lnN_kj_female_hours=ln(N_kj_female_hours) gen lnN_kj_pooled_hours=ln(N_kj_pooled_hours) gen lnN_kj_pooled_employment=ln(N_kj_pooled_employment) *********************************** ** weekly wages gen weekly=(weekly_ma_us*howo_ma_us+weekly_fe_us*howo_fe_us+weekly_ma_for*howo_ma_for+weekly_fe_for*howo_fe_for)/howo gen weekly_male=(weekly_ma_us*howo_ma_us+weekly_ma_for*howo_ma_for)/(howo_ma_us+howo_ma_for) gen weekly_female=(weekly_fe_us*howo_fe_us+weekly_fe_for*howo_fe_for)/(howo_fe_us+howo_fe_for) ** log weekly wages variables gen lnweekly=ln(weekly) gen lnweekly_male=ln(weekly_male) gen lnweekly_female=ln(weekly_female) *construction of the labor inputs with different assumptions **imperfect sust in the edu group, males xi:ivreg lnweekly_male (lnN_kj_pooled_hours=lnhowo_for) i.edu*i.exp i.edu*i.year [aw=employment],robust cluster(eduexp) predict e_kt_male_imp gen base_kt_male_imp=lnweekly_male +0.16*lnN_kj_pooled_hours-e_kt_male_imp replace base_kt_male_imp=exp(base_kt_male_imp) egen sum_kt_male_imp=sum(base_kt_male_imp), by (edu year) gen theta_kt_male_imp=base_kt_male_imp/sum_kt_male_imp gen term_kt_male_imp=(theta_kt_male_imp)*((N_kj_male_hours)^0.84) egen index_kt_male_imp=sum(term_kt_male_imp), by(edu year) gen N_k_male_imp=index_kt_male_imp^1.19 *** perf susbt in the edu group, male egen N_k_male_perf=sum(howo_male), by (edu year) **imperfect sust in the edu group, females xi:ivreg lnweekly_female (lnN_kj_pooled_hours=lnhowo_for) i.edu*i.exp i.edu*i.year [aw=employment],robust cluster(eduexp) predict e_kt_female_imp gen base_kt_female_imp=lnweekly_female +0.06*lnN_kj_pooled_hours-e_kt_female_imp replace base_kt_female_imp=exp(base_kt_female_imp) egen sum_kt_female_imp=sum(base_kt_female_imp), by (edu year) gen theta_kt_female_imp=base_kt_female_imp/sum_kt_female_imp gen term_kt_female_imp=(theta_kt_female_imp)*((N_kj_female_hours)^0.95) egen index_kt_female_imp=sum(term_kt_female_imp), by(edu year) gen N_k_female_imp=index_kt_female_imp^1.05 *** perf susbt in the edu group, male egen N_k_female_perf=sum(howo_female), by (edu year) **imperfect subst in the edu group, pooled males and female xi:ivreg lnweekly (lnN_kj_pooled_hours=lnhowo_for) i.edu*i.exp i.edu*i.year [aw=employment],robust cluster(eduexp) predict e_kt_pooled_imp gen base_kt_pooled_imp=lnweekly +0.14*lnN_kj_pooled_hours-e_kt_pooled_imp replace base_kt_pooled_imp=exp(base_kt_pooled_imp) egen sum_kt_pooled_imp=sum(base_kt_pooled_imp), by (edu year) gen theta_kt_pooled_imp=base_kt_pooled_imp/sum_kt_male_imp gen term_kt_pooled_imp=(theta_kt_pooled_imp)*((N_kj_pooled_hours)^0.86) egen index_kt_pooled_imp=sum(term_kt_pooled_imp), by(edu year) gen N_k_pooled_imp=index_kt_pooled_imp^1.16 *** perf susbt in the edu group, pooled male and female egen N_k_pooled_perf=sum(howo), by (edu year) ** imperfect susbt, employment based gen term_kt_pooled_imp_empl=(theta_kt_pooled_imp)*((N_kj_pooled_employment)^0.86) egen index_kt_pooled_imp_empl=sum(term_kt_pooled_imp_empl), by(edu year) gen N_k_pooled_imp_empl=index_kt_pooled_imp_empl^1.16 *** perf susbt in the edu group employment based, pooled male and female egen N_k_pooled_perf_empl=sum(employment), by (edu year) ** weekly wages gen week_bill=weekly*howo gen week_bill_male=(weekly_ma_us*howo_ma_us+weekly_ma_for*howo_ma_for) gen week_bill_female=(weekly_fe_us*howo_fe_us+weekly_fe_for*howo_fe_for) collapse (sum) week_bill week_bill_male week_bill_female employment empl_us empl_for empl_ma_for empl_fe_for howo howo_us howo_for howo_ma_for howo_fe_for howo_male howo_female (mean) N_k_male_imp N_k_female_imp N_k_pooled_imp N_k_pooled_imp_empl N_k_male_perf N_k_female_perf N_k_pooled_perf N_k_pooled_perf_empl, by (year edu) gen weekly=week_bill/howo gen weekly_ma=week_bill_male/howo_male gen weekly_fe=week_bill_female/howo_female tab edu, gen(ed) gen time1=ed1*(year-1960) gen time2=ed2*(year-1960) gen time3=ed3*(year-1960) gen time4=ed4*(year-1960) tab year, gen (y) *** generate the logs gen lnN_k_male_imp=ln(N_k_male_imp) gen lnN_k_female_imp=ln(N_k_female_imp) gen lnN_k_pooled_imp=ln(N_k_pooled_imp) gen lnN_k_pooled_imp_empl=ln(N_k_pooled_imp_empl) gen lnN_k_male_pef=ln(N_k_male_perf) gen lnN_k_female_perf=ln(N_k_female_perf) gen lnN_k_pooled_perf=ln(N_k_pooled_perf) gen lnN_k_pooled_perf_empl=ln(N_k_pooled_perf_empl) gen lnhowo_for=ln(howo_for) gen lnempl_for=ln(empl_for) gen lnweekly=ln(weekly) gen lnweekly_ma=ln(weekly_ma) gen lnweekly_fe=ln(weekly_fe) *** wages by education group *** Estimates of 1/sigma_edu in Table 5 **row 1 males ivreg lnweekly_ma (lnN_k_pooled_imp=lnhowo_for) time1-time4 [aweight=employment], robust cluster (edu) ivreg lnweekly_ma (lnN_k_pooled_perf=lnhowo_for) time1-time4 [aweight=employment], robust cluster (edu) ivreg lnweekly_ma (lnN_k_pooled_imp=lnhowo_for) time1-time4 y1-y6 [aweight=employment], robust cluster (edu) ivreg lnweekly_ma (lnN_k_pooled_imp=lnhowo_for) time1-time4 ed1-ed4 [aweight=employment], robust cluster (edu) *** row 2 female ivreg lnweekly_fe (lnN_k_pooled_imp=lnhowo_for) time1-time4 [aweight=employment], robust cluster (edu) ivreg lnweekly_fe (lnN_k_pooled_perf=lnhowo_for) time1-time4 [aweight=employment], robust cluster (edu) ivreg lnweekly_fe (lnN_k_pooled_imp=lnhowo_for) time1-time4 y1-y6 [aweight=employment], robust cluster (edu) ivreg lnweekly_fe (lnN_k_pooled_imp=lnhowo_for) time1-time4 ed1-ed4 [aweight=employment], robust cluster (edu) row 3 pooled ivreg lnweekly (lnN_k_pooled_imp=lnhowo_for) time1-time4 [aweight=employment], robust cluster (edu) ivreg lnweekly (lnN_k_pooled_perf=lnhowo_for) time1-time4 [aweight=employment], robust cluster (edu) ivreg lnweekly (lnN_k_pooled_imp=lnhowo_for) time1-time4 y1-y6 [aweight=employment], robust cluster (edu) ivreg lnweekly (lnN_k_pooled_imp=lnhowo_for) time1-time4 ed1-ed4 [aweight=employment], robust cluster (edu) row 4 pooled, employment ivreg lnweekly (lnN_k_pooled_imp_empl=lnempl_for) time1-time4 [aweight=employment], robust cluster (edu) ivreg lnweekly (lnN_k_pooled_perf_empl=lnempl_for) time1-time4 [aweight=employment], robust cluster (edu) ivreg lnweekly (lnN_k_pooled_imp_empl=lnempl_for) time1-time4 y1-y6 [aweight=employment], robust cluster (edu) ivreg lnweekly (lnN_k_pooled_imp_empl=lnempl_for) time1-time4 ed1-ed4 [aweight=employment], robust cluster (edu) row 5 pooled, 1960-2006 ivreg lnweekly (lnN_k_pooled_imp=lnhowo_for) time1-time4 [aweight=employment]if year>1960, robust cluster (edu) ivreg lnweekly (lnN_k_pooled_perf=lnhowo_for) time1-time4 [aweight=employment] if year>1960, robust cluster (edu) ivreg lnweekly (lnN_k_pooled_imp=lnhowo_for) time1-time4 y1-y6 [aweight=employment] if year>1960, robust cluster (edu) ivreg lnweekly (lnN_k_pooled_imp=lnhowo_for) time1-time4 ed1-ed4 [aweight=employment] if year>1960, robust cluster (edu)