/
miningschools_acf.do
145 lines (114 loc) · 3.48 KB
/
miningschools_acf.do
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
/* Management, Productivity, and Technology Choices: Evidence from U.S. Mining Schools
- PRODUCTION FUNCTION ESTIMATION USING ACF (2015): ESTIMATES -
Michael Rubens (KU Leuven)
===================================================================================================*/
use ./appendix/temp_ap/data_temp2, clear
save ./appendix/temp_ap/data_ap_temp, replace // temporary data file
set more off
** First stage estimation
xtset mineid yr, year
* Estimate probability of exit
gen dx = q~=. & F.q==.
probit dx l m ka ke ks x
predict px
local I = 3 // 2nd & 3rd order terms for polynomial approximation
local J = 3
local N = 3
forvalues i=1/`I'{
gen l`i' = l^(`i')
gen m`i' = m^(`i')
forvalues j=1/`J'{
gen l`i'm`j' = l^(`i')*m^(`j')
}
}
// ke, ka, ks and x are dummies, so do not enter the polynomials with squared terms:
foreach var of varlist l1* l2* l3* m1* m2* m3 {
gen `var'ke = `var'*ke
gen `var'ka = `var'*ka
gen `var'ks = `var'*ks
gen `var'x = `var'*x
gen `var'keka = `var'*ke*ka
gen `var'keks = `var'*ke*ks
gen `var'kex = `var'*ke*x
gen `var'kaks = `var'*ka*ks
gen `var'kax = `var'*ka*x
gen `var'ksx = `var'*ks*x
gen `var'kekaks = `var'*ke*ka*ks
gen `var'kekax = `var'*ke*ka*x
gen `var'keksx = `var'*ke*ks*x
gen `var'kaksx = `var'*ke*ks*x
gen `var'kekaksx = `var'*ke*ka*ks*x
}
gen keka = ke*ka
gen keks = ke*ks
gen kex = ke*x
gen kaks = ka*ks
gen kax = ka*x
gen ksx = ks*x
gen kekaks = ke*ka*ks
gen kekax = ke*ka*x
gen keksx = ke*ks*x
gen kaksx = ke*ks*x
gen kekaksx = ke*ka*ks*x
gen xke = kex
* Estimate phi function
set matsize 11000
quietly{
reg y l1* l2* l3* m1* m2* m3* x col ka* ke* ks* i.yr px
predict double phi if e(sample)==1
gen phi_lag=L.phi if e(sample)==1
}
** Second Stage Estimation
gen l_lag = L.l // lagged variables
gen ka_lag = L.ka
gen ke_lag = L.ke
gen ks_lag = L.ks
gen m_lag = L.m
gen l_lag2 = l_lag^2
gen ka_lag2 = ka_lag^2
gen ke_lag2 = ke_lag^2
gen ks_lag2 = ks_lag^2
gen m_lag2 = m_lag^2
gen l_lagka_lag = l_lag*ka_lag
gen l_lagke_lag = l_lag*ke_lag
gen l_lagks_lag = l_lag*ks_lag
gen lka = l*ka
gen lke = l*ke
gen lks = l*ks
gen l_lagka1 = l_lag*ka
gen l_lagke1 = l_lag*ke
gen l_lagks1 = l_lag*ks
gen col_lag=L.col
gen x_lag = L.x
gen yr_lag=L.yr
gen xke_lag = L.xke
gen l1m1_lag = l_lag*m_lag
* Averages (for partial derivatives interaction terms)
foreach var of varlist l m ka ke ks {
egen av`var' = mean(`var')
}
xtset mineid yr
gen const = 1
drop if l == .
drop if ka == . | ke==. | ks==.
drop if m == .
drop if x==.
drop if x_lag==.
drop if phi == .
drop if phi_lag == .
di _N
* GMM estimation
do ./appendix/miningschools_pf_acf // run GMM estimation command in mata
* Store estimates of this bootstrap iteration in vectors
gen bc_acf = beta_lin[1,1]
gen bl_acf = beta_lin[2,1]
gen bx_acf = beta_lin[3,1]
gen bka_acf = beta_lin[4,1]
gen bke_acf = beta_lin[5,1]
gen bks_acf = beta_lin[6,1]
gen bt_acf = beta_lin[7,1]
gen bcol_acf = beta_lin[8,1]
gen bm_acf = beta_lin[9,1]
* gen const=1
collapse bc_acf bl_acf bka_acf bke_acf bks_acf bm_acf bx_acf bt_acf bcol_acf , by(const) // Save estimates and standard errors in tempfile
save ./appendix/temp_ap/estimates_acf, replace