-
Notifications
You must be signed in to change notification settings - Fork 1
/
6_graphs_M2_coefplot.do
302 lines (273 loc) · 13.4 KB
/
6_graphs_M2_coefplot.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
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
/*------------------------------------------------------------------------------
------------------------------------------------------------------------------
* Project: GxE using NTR
* Authors: Ghirardi et al. (2024)
* Dofile topic: Models (Graphs M2: Main impact PGIs and family SES)
------------------------------------------------------------------------------
------------------------------------------------------------------------------*/
clear all
set more off, perm
set cformat %3.2f
* ---------------------------------------------------------------------------- *
* Mathematics at age 7
* ---------------------------------------------------------------------------- *
foreach des in "BE" "WI" "TRIO" {
use "$working_dataset/`des'_rekenm7_em", clear
if "`des'" == "BE" {
reg rekenm7 c.CogPGS_sd c.NCogPGS_sd i.pedu_max_0 $controlsBE, vce(cl FamilyNumber)
}
if "`des'" == "TRIO" {
reg rekenm7 c.CogPGS_sd c.NCogPGS_sd i.pedu_max_0 $controlsTRIO, vce(cl FamilyNumber)
}
if "`des'" == "WI" {
xtset FamilyNumber
xtreg rekenm7 c.CogPGS_sd c.NCogPGS_sd $controlsWI if dup_rekenm7==1, fe vce(cl FamilyNumber)
}
estimate store rekenm7_`des'
}
#delimit ;
coefplot
(rekenm7_BE, keep(CogPGS_sd) msymbol(T) mfcolor(ebblue%20) msize(large) mlcolor(edkblue) ciopts(lcolor(edkblue)))
(rekenm7_BE, keep(NCogPGS_sd) msymbol(O) mfcolor(orange%20) msize(large) mlcolor(cranberry) ciopts(lcolor(cranberry)))
(rekenm7_BE, keep(1.pedu_max_0) msymbol(D) mfcolor(midgreen%20) msize(large) mlcolor(dkgreen) ciopts(lcolor(dkgreen))) ,
bylabel("Between-family")
subtitle(, size(medium)) ||
(rekenm7_WI, keep(CogPGS_sd) )
(rekenm7_WI, keep(NCogPGS_sd))
(rekenm7_WI, keep(1.pedu_max_0)), bylabel("Within-family") ||
(rekenm7_TRIO, keep(CogPGS_sd))
(rekenm7_TRIO, keep(NCogPGS_sd))
(rekenm7_TRIO, keep(1.pedu_max_0)), bylabel("Trio") vertical
xlab("") ylab("") mlabel mlabformat(%9.2g) mlabposition(3) mlabgap(*2)
mlabsize(small) ylabel(-.1(.1).4, format(%9.1fc))
byopts(compact cols(3) title("Mathematics (age 7)", size(medium))) plotlabels("PGI Cognitive skills" "PGI Noncognitive skills" "Family SES")
yline(0, lwidth(1pt) lcolor(red)) legend(rows(1) pos(6) size(medium)) name(M2_rekenm7, replace)
;
#delimit cr
* ---------------------------------------------------------------------------- *
* Reading at age 7
* ---------------------------------------------------------------------------- *
foreach des in "BE" "WI" "TRIO" {
use "$working_dataset/`des'_taalm7_em", clear
if "`des'" == "BE" {
reg taalm7 c.CogPGS_sd c.NCogPGS_sd i.pedu_max_0 $controlsBE, vce(cl FamilyNumber)
}
if "`des'" == "TRIO" {
reg taalm7 c.CogPGS_sd c.NCogPGS_sd i.pedu_max_0 $controlsTRIO, vce(cl FamilyNumber)
}
if "`des'" == "WI" {
xtset FamilyNumber
xtreg taalm7 c.CogPGS_sd c.NCogPGS_sd $controlsWI if dup_taalm7==1, fe vce(cl FamilyNumber)
}
estimate store taalm7_`des'
}
#delimit ;
coefplot
(taalm7_BE, keep(CogPGS_sd) msymbol(T) mfcolor(ebblue%20) msize(large) mlcolor(edkblue) ciopts(lcolor(edkblue)))
(taalm7_BE, keep(NCogPGS_sd) msymbol(O) mfcolor(orange%20) msize(large) mlcolor(cranberry) ciopts(lcolor(cranberry)))
(taalm7_BE, keep(1.pedu_max_0) msymbol(D) mfcolor(midgreen%20) msize(large) mlcolor(dkgreen) ciopts(lcolor(dkgreen))) ,
bylabel("Between-family")
subtitle(, size(medium)) ||
(taalm7_WI, keep(CogPGS_sd) )
(taalm7_WI, keep(NCogPGS_sd))
(taalm7_WI, keep(1.pedu_max_0)), bylabel("Within-family") ||
(taalm7_TRIO, keep(CogPGS_sd))
(taalm7_TRIO, keep(NCogPGS_sd))
(taalm7_TRIO, keep(1.pedu_max_0)), bylabel("Trio") vertical
xlab("") ylab("") mlabel mlabformat(%9.2g) mlabposition(3) mlabgap(*2)
mlabsize(small) ylabel(-.1(.1).4, format(%9.1fc))
byopts(compact cols(3) title("Reading (age 7)", size(medium))) plotlabels("PGI Cognitive skills" "PGI Noncognitive skills" "Family SES")
yline(0, lwidth(1pt) lcolor(red)) legend(rows(1) pos(6) size(medium)) name(M2_taalm7, replace)
;
#delimit cr
* ---------------------------------------------------------------------------- *
* Mathematics at age 10
* ---------------------------------------------------------------------------- *
foreach des in "BE" "WI" "TRIO" {
use "$working_dataset/`des'_rekenm10_em", clear
if "`des'" == "BE" {
reg rekenm10 c.CogPGS_sd c.NCogPGS_sd i.pedu_max_0 $controlsBE, vce(cl FamilyNumber)
}
if "`des'" == "TRIO" {
reg rekenm10 c.CogPGS_sd c.NCogPGS_sd i.pedu_max_0 $controlsTRIO, vce(cl FamilyNumber)
}
if "`des'" == "WI" {
xtset FamilyNumber
xtreg rekenm10 c.CogPGS_sd c.NCogPGS_sd $controlsWI if dup_rekenm10==1, fe vce(cl FamilyNumber)
}
estimate store rekenm10_`des'
}
#delimit ;
coefplot
(rekenm10_BE, keep(CogPGS_sd) msymbol(T) mfcolor(ebblue%20) msize(large) mlcolor(edkblue) ciopts(lcolor(edkblue)))
(rekenm10_BE, keep(NCogPGS_sd) msymbol(O) mfcolor(orange%20) msize(large) mlcolor(cranberry) ciopts(lcolor(cranberry)))
(rekenm10_BE, keep(1.pedu_max_0) msymbol(D) mfcolor(midgreen%20) msize(large) mlcolor(dkgreen) ciopts(lcolor(dkgreen))) ,
bylabel("Between-family")
subtitle(, size(medium)) ||
(rekenm10_WI, keep(CogPGS_sd) )
(rekenm10_WI, keep(NCogPGS_sd))
(rekenm10_WI, keep(1.pedu_max_0)), bylabel("Within-family") ||
(rekenm10_TRIO, keep(CogPGS_sd))
(rekenm10_TRIO, keep(NCogPGS_sd))
(rekenm10_TRIO, keep(1.pedu_max_0)), bylabel("Trio") vertical
xlab("") ylab("") mlabel mlabformat(%9.2g) mlabposition(3) mlabgap(*2)
mlabsize(small) ylabel(-.1(.1).4, format(%9.1fc))
byopts(compact cols(3) title("Mathematics (age 10)", size(medium))) plotlabels("PGI Cognitive skills" "PGI Noncognitive skills" "Family SES")
yline(0, lwidth(1pt) lcolor(red)) legend(rows(1) pos(6) size(medium)) name(M2_rekenm10, replace)
;
#delimit cr
* ---------------------------------------------------------------------------- *
* Reading at age 10
* ---------------------------------------------------------------------------- *
foreach des in "BE" "WI" "TRIO" {
use "$working_dataset/`des'_taalm10_em", clear
if "`des'" == "BE" {
reg taalm10 c.CogPGS_sd c.NCogPGS_sd i.pedu_max_0 $controlsBE, vce(cl FamilyNumber)
}
if "`des'" == "TRIO" {
reg taalm10 c.CogPGS_sd c.NCogPGS_sd i.pedu_max_0 $controlsTRIO, vce(cl FamilyNumber)
}
if "`des'" == "WI" {
xtset FamilyNumber
xtreg taalm10 c.CogPGS_sd c.NCogPGS_sd $controlsWI if dup_taalm10==1, fe vce(cl FamilyNumber)
}
estimate store taalm10_`des'
}
#delimit ;
coefplot
(taalm10_BE, keep(CogPGS_sd) msymbol(T) mfcolor(ebblue%20) msize(large) mlcolor(edkblue) ciopts(lcolor(edkblue)))
(taalm10_BE, keep(NCogPGS_sd) msymbol(O) mfcolor(orange%20) msize(large) mlcolor(cranberry) ciopts(lcolor(cranberry)))
(taalm10_BE, keep(1.pedu_max_0) msymbol(D) mfcolor(midgreen%20) msize(large) mlcolor(dkgreen) ciopts(lcolor(dkgreen))) ,
bylabel("Between-family")
subtitle(, size(medium)) ||
(taalm10_WI, keep(CogPGS_sd) )
(taalm10_WI, keep(NCogPGS_sd))
(taalm10_WI, keep(1.pedu_max_0)), bylabel("Within-family") ||
(taalm10_TRIO, keep(CogPGS_sd))
(taalm10_TRIO, keep(NCogPGS_sd))
(taalm10_TRIO, keep(1.pedu_max_0)), bylabel("Trio") vertical
xlab("") ylab("") mlabel mlabformat(%9.2g) mlabposition(3) mlabgap(*2)
mlabsize(small) ylabel(-.1(.1).4, format(%9.1fc))
byopts(compact cols(3) title("Reading (age 10)", size(medium))) plotlabels("PGI Cognitive skills" "PGI Noncognitive skills" "Family SES")
yline(0, lwidth(1pt) lcolor(red)) legend(rows(1) pos(6) size(medium)) name(M2_taalm10, replace)
;
#delimit cr
* ---------------------------------------------------------------------------- *
* CITO
* ---------------------------------------------------------------------------- *
foreach des in "BE" "WI" "TRIO" {
use "$working_dataset/`des'_CITO_sd_em", clear
if "`des'" == "BE" {
reg CITO_sd c.CogPGS_sd c.NCogPGS_sd i.pedu_max_0 $controlsBE, vce(cl FamilyNumber)
}
if "`des'" == "TRIO" {
reg CITO_sd c.CogPGS_sd c.NCogPGS_sd i.pedu_max_0 $controlsTRIO, vce(cl FamilyNumber)
}
if "`des'" == "WI" {
xtset FamilyNumber
xtreg CITO_sd c.CogPGS_sd c.NCogPGS_sd $controlsWI if dup_CITO_sd==1, fe vce(cl FamilyNumber)
}
estimate store CITO_sd_`des'
}
#delimit ;
coefplot
(CITO_sd_BE, keep(CogPGS_sd) msymbol(T) mfcolor(ebblue%20) msize(large) mlcolor(edkblue) ciopts(lcolor(edkblue)))
(CITO_sd_BE, keep(NCogPGS_sd) msymbol(O) mfcolor(orange%20) msize(large) mlcolor(cranberry) ciopts(lcolor(cranberry)))
(CITO_sd_BE, keep(1.pedu_max_0) msymbol(D) mfcolor(midgreen%20) msize(large) mlcolor(dkgreen) ciopts(lcolor(dkgreen))) ,
bylabel("Between-family")
subtitle(, size(medium)) ||
(CITO_sd_WI, keep(CogPGS_sd) )
(CITO_sd_WI, keep(NCogPGS_sd))
(CITO_sd_WI, keep(1.pedu_max_0)), bylabel("Within-family") ||
(CITO_sd_TRIO, keep(CogPGS_sd))
(CITO_sd_TRIO, keep(NCogPGS_sd))
(CITO_sd_TRIO, keep(1.pedu_max_0)), bylabel("Trio") vertical
xlab("") ylab("") mlabel mlabformat(%9.2g) mlabposition(3) mlabgap(*2)
mlabsize(small) ylabel(-.1(.1).5, format(%9.1fc))
byopts(compact cols(3) title("Test scores (CITO) (age 12)", size(medium))) plotlabels("PGI Cognitive skills" "PGI Noncognitive skills" "Family SES")
yline(0, lwidth(1pt) lcolor(red)) legend(rows(1) pos(6) size(medium)) name(M2_CITO_sd, replace)
;
#delimit cr
* ---------------------------------------------------------------------------- *
* Track
* ---------------------------------------------------------------------------- *
foreach des in "BE" "WI" "TRIO" {
use "$working_dataset/`des'_track_em", clear
if "`des'" == "BE" {
reg track c.CogPGS_sd c.NCogPGS_sd i.pedu_max_0 $controlsBE, vce(cl FamilyNumber)
}
if "`des'" == "TRIO" {
reg track c.CogPGS_sd c.NCogPGS_sd i.pedu_max_0 $controlsTRIO, vce(cl FamilyNumber)
}
if "`des'" == "WI" {
xtset FamilyNumber
xtreg track c.CogPGS_sd c.NCogPGS_sd $controlsWI if dup_track==1, fe vce(cl FamilyNumber)
}
estimate store track_`des'
}
#delimit ;
coefplot
(track_BE, keep(CogPGS_sd) msymbol(T) mfcolor(ebblue%20) msize(large) mlcolor(edkblue) ciopts(lcolor(edkblue)))
(track_BE, keep(NCogPGS_sd) msymbol(O) mfcolor(orange%20) msize(large) mlcolor(cranberry) ciopts(lcolor(cranberry)))
(track_BE, keep(1.pedu_max_0) msymbol(D) mfcolor(midgreen%20) msize(large) mlcolor(dkgreen) ciopts(lcolor(dkgreen)))
, bylabel("Between-family")
subtitle(, size(medium)) ||
(track_WI, keep(CogPGS_sd) )
(track_WI, keep(NCogPGS_sd))
(track_WI, keep(1.pedu_max_0)), bylabel("Within-family") ||
(track_TRIO, keep(CogPGS_sd))
(track_TRIO, keep(NCogPGS_sd))
(track_TRIO, keep(1.pedu_max_0)), bylabel("Trio") vertical
xlab("") ylab("") mlabel mlabformat(%9.2g) mlabposition(3) mlabgap(*2)
mlabsize(small) ylabel(-.1(.1).5, format(%9.1fc))
byopts(compact cols(3) title("Upper secondary tracks (VWO+HAVO) (age 12-18)", size(medium))) plotlabels("PGI Cognitive skills" "PGI Noncognitive skills" "Family SES")
yline(0, lwidth(1pt) lcolor(red)) legend(rows(1) pos(6) size(medium)) name(M2_track, replace)
;
#delimit cr
* ---------------------------------------------------------------------------- *
* EA
* ---------------------------------------------------------------------------- *
foreach des in "BE" "WI" "TRIO" {
use "$working_dataset/`des'_edu4_after1980_em", clear
if "`des'" == "BE" {
reg edu4_after1980 c.CogPGS_sd c.NCogPGS_sd i.pedu_max_0 $controlsBE, vce(cl FamilyNumber)
}
if "`des'" == "TRIO" {
reg edu4_after1980 c.CogPGS_sd c.NCogPGS_sd i.pedu_max_0 $controlsTRIO, vce(cl FamilyNumber)
}
if "`des'" == "WI" {
xtset FamilyNumber
xtreg edu4_after1980 c.CogPGS_sd c.NCogPGS_sd $controlsWI if dup_edu4_after1980==1, fe vce(cl FamilyNumber)
}
estimate store edu4_after1980_`des'
}
#delimit ;
coefplot
(edu4_after1980_BE, keep(CogPGS_sd) msymbol(T) mfcolor(ebblue%20) msize(large) mlcolor(edkblue) ciopts(lcolor(edkblue)))
(edu4_after1980_BE, keep(NCogPGS_sd) msymbol(O) mfcolor(orange%20) msize(large) mlcolor(cranberry) ciopts(lcolor(cranberry)))
(edu4_after1980_BE, keep(1.pedu_max_0) msymbol(D) mfcolor(midgreen%20) msize(large) mlcolor(dkgreen) ciopts(lcolor(dkgreen))) ,
bylabel("Between-family")
subtitle(, size(medium)) ||
(edu4_after1980_WI, keep(CogPGS_sd) )
(edu4_after1980_WI, keep(NCogPGS_sd))
(edu4_after1980_WI, keep(1.pedu_max_0)), bylabel("Within-family") ||
(edu4_after1980_TRIO, keep(CogPGS_sd))
(edu4_after1980_TRIO, keep(NCogPGS_sd))
(edu4_after1980_TRIO, keep(1.pedu_max_0)), bylabel("Trio") vertical
xlab("") ylab("") mlabel mlabformat(%9.2g) mlabposition(3) mlabgap(*2)
mlabsize(small) ylabel(-.1(.1).5, format(%9.1fc))
byopts(compact cols(3) title("Higher educational attainment (age ≥ 25)", size(medium))) plotlabels("PGI Cognitive skills" "PGI Noncognitive skills" "Family SES")
yline(0, lwidth(1pt) lcolor(red)) legend(rows(1) pos(6) size(medium)) name(M2_edu4_after1980, replace)
;
#delimit cr
* graph combine
grc1leg2 M2_rekenm7 M2_taalm7 M2_rekenm10 M2_taalm10 , col (1) ysize(9)
graph export "$output_figures/BE_WI_TRIO/M2_grades.pdf", replace
graph save "$output_figures/BE_WI_TRIO/M2_grades.gph", replace
graph export "$output_figures/BE_WI_TRIO/M2_grades.tif", width(4000) replace
graph export "$output_figures/BE_WI_TRIO/M2_grades.eps", replace
grc1leg2 M2_CITO_sd M2_track M2_edu4_after1980 , col (1) ysize(9)
graph export "$output_figures/BE_WI_TRIO/M2_citotrackedu.pdf", replace
graph save "$output_figures/BE_WI_TRIO/M2_citotrackedu.gph", replace
graph export "$output_figures/BE_WI_TRIO/M2_citotrackedu.tif", width(4000) replace
graph export "$output_figures/BE_WI_TRIO/M2_citotrackedu.eps", replace