[8] | sourcedata | |||
[22] | sourcedata | |||
[25] | statelist | |||
table3.do:16 | ||||
→ | t3_data_setup.do | ↘ | ||
outdata |
[57] | |||
statelist |
[19] |
t3_data_setup.do open
file:script:do
# | content |
---|---|
1 [+] | #delimit |
3 [+] | cap prog drop t3_setup |
4 [+] | prog def t3_setup |
5 [+] | syntax , |
6 [+] | di 123 |
/* generate state policy variable */ |
|
8 [+] | use statefip using "`sourcedata'" , |
9 [+] | contract statefip |
10 [+] | set seed 10103 |
11 [+] | generate sort_order = uniform() |
12 [+] | sort sort_order |
13 [+] | gen policy_st = _n <= 25 |
14 [+] | sort statefip |
15 [+] | drop sort_order _freq |
18 [+] | tempfile statelist |
19 [+] | qui save `statelist' |
22 [+] | use "`sourcedata'" , |
24 [+] | sort statefip |
25 [+] | merge m:1 statefip using `statelist' |
26 [+] | tab _merge |
27 [+] | drop _merge |
29 [+] | summ year |
30 [+] | local yrmean = r(mean) |
31 [+] | gen policy_yr = year >= `yrmean' |
32 [+] | di "policy turns on starting in year >= `yrmean'" |
33 [+] | gen policy = policy_st * policy_yr |
/* generate state and year averages of the LHS variable and the policy variable */ |
|
36 [+] | egen `keylhs'_avg_s = mean(`keylhs') , |
37 [+] | egen `keylhs'_avg_y = mean(`keylhs') , |
39 [+] | egen policy_avg_s = mean(policy) , |
40 [+] | egen policy_avg_y = mean(policy) , |
/* generate deviations-from state and year FE variables for LHS and RHS. use those transformed variables in later regressions */ |
|
45 [+] | qui reg `keylhs' i.state i.year |
46 [+] | predict `keylhs'_resid_styr , |
47 [+] | qui reg policy i.state i.year |
48 [+] | predict policy_resid_styr , |
/* lnwage, lnwage_sy */ |
|
52 [+] | qui reg `keylhs' i.year |
53 [+] | predict `keylhs'_resid_yr , |
54 [+] | qui reg policy i.year |
55 [+] | predict policy_resid_yr , |
57 [+] | save `outdata' |
60 [+] | end |
#delimit ; cap prog drop t3_setup ; prog def t3_setup ; syntax , keylhs(string) sourcedata(string) outdata(string) ; di 123 ; /* generate state policy variable */ use statefip using "`sourcedata'" , replace ; contract statefip ; set seed 10103 ; generate sort_order = uniform() ; sort sort_order ; gen policy_st = _n <= 25 ; sort statefip ; drop sort_order _freq ; tempfile statelist ; qui save `statelist' ; use "`sourcedata'" , replace ; sort statefip ; merge m:1 statefip using `statelist' ; tab _merge ; drop _merge ; summ year ; local yrmean = r(mean) ; gen policy_yr = year >= `yrmean' ; di "policy turns on starting in year >= `yrmean'" ; gen policy = policy_st * policy_yr ; /* generate state and year averages of the LHS variable and the policy variable */ egen `keylhs'_avg_s = mean(`keylhs') , by(statefip) ; egen `keylhs'_avg_y = mean(`keylhs') , by(year) ; egen policy_avg_s = mean(policy) , by(statefip) ; egen policy_avg_y = mean(policy) , by(year) ; /* generate deviations-from state and year FE variables for LHS and RHS. use those transformed variables in later regressions */ qui reg `keylhs' i.state i.year ; predict `keylhs'_resid_styr , resid ; qui reg policy i.state i.year ; predict policy_resid_styr , resid ; /* also residuals from year-only-FE models ... */ /* lnwage, lnwage_sy */ qui reg `keylhs' i.year ; predict `keylhs'_resid_yr , resid ; qui reg policy i.year ; predict policy_resid_yr , resid ; save `outdata' ; end ;