clear set more off capture log close local dir = "C:\Work for the Center\TA_materials\Friedberg" local data = "friedberg_divorce_data.dta" local log = "C:\Work for the Center\TA_materials\Friedberg\log.log" log using "`log'", replace cd "`dir'" use "`data'", clear *2) reg drate divlaw [aw = pop] if year == 1970 reg drate divlaw [aw = pop] if year == 1978 reg drate divlaw [aw = pop] if year == 1988 ** if we want to loop over all the years instead of just arbitrarily picking a few: /* forvalues i = 1968(1)1988 { display "year = `i'" reg drate divlaw [aw = pop] if year == `i' if `i' == 1968 { outreg divlaw using "results.xls", replace nolabel se bdec(5) br } else outreg divlaw using "results.xls", append nolabel se bdec(5) br } */ *3) ** let's make a variable that tells us the year the law came into effect gen temp1 = year*divlaw sort numstate year gen temp2 = temp1 replace temp2 = temp2[_n-1] if temp1!=0 & temp1[_n-1]!=0 egen law_year = max(temp2), by(numstate) label variable law_year "year the law was enacted if ever (effective year)" drop temp* ** divide the states into early, late and never legalizers gen time = 0 replace time = 1 if (law_year <= 1973 & law_year != 0) replace time = 2 if (law_year > 1973) ** generate the mean divorce rate weighted by population egen group_pop = sum(pop) if divx1 != 1 & divx2 != 1 & divx3 != 1 & divx4 != 1 & divx5 != 1 & divx6 != 1 & divx7 != 1 & divx8 != 1 & divx9 != 1 & divx10 != 1 & divx11 != 1 & divx12 != 1 & divx13 != 1 & divx14 != 1 & divx15 != 1 & divx16 != 1 & divx17 != 1 , by(time year) gen drate_weighted = drate * (pop/group_pop) egen mean_drate = sum(drate_weighted), by(time year) twoway (connected mean_drate year if time == 0, sort) (connected mean_drate year if time == 1, sort) (connected mean_drate year if time == 2, sort), legend(label(1 "Never Passed") label(2 "Early Passers") label(3 "Late Passers")) ***************************************************************************************** *** let's replicate her results now just to be sure (from Table 3) ********************** ***************************************************************************************** *4,5) tab numstate, gen(ss) tab year, gen(yy) foreach x of varlist ss* { gen year_`x' = `x'*year } foreach x of varlist year_ss* { gen sq_`x' = `x'*(year^2) } reg drate divlaw divx* [aweight=pop] outreg using table2.xls, se br bdec(3) replace xi: reg drate divlaw divx* yy* [aweight=pop] outreg using table2.xls, se br bdec(3) append xi: reg drate divlaw divx* yy* ss* [aweight=pop] outreg using table2.xls, se br bdec(3) append xi: reg drate divlaw divx* yy* ss* year_ss* [aweight=pop] outreg using table2.xls, se br bdec(3) append xi: reg drate divlaw divx* yy* ss* year_ss* sq_year_ss* [aweight=pop] outreg using table2.xls, se br bdec(3) append *6) * Now we replicate Table 3 leaving out CA *Without CA reg drate divlaw divx* [aweight=pop] if numstate != 93 outreg using table2a.xls, se br bdec(3) replace xi: reg drate divlaw divx* yy* [aweight=pop] if numstate != 93 outreg using table2a.xls, se br bdec(3) append xi: reg drate divlaw divx* yy* ss* [aweight=pop] if numstate != 93 outreg using table2a.xls, se br bdec(3) append xi: reg drate divlaw divx* yy* ss* year_ss* [aweight=pop] if numstate != 93 outreg using table2a.xls, se br bdec(3) append xi: reg drate divlaw divx* yy* ss* year_ss* sq_year_ss* [aweight=pop] if numstate != 93 outreg using table2a.xls, se br bdec(3) append ** note that she should have been clustering throughout. Here is a sample regression ** with clustered standard errors * reg drate divlaw divx* [aweight=pop] if numstate!=93, cluster(numstate) log close