-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path2_2_robustnessanalysis.do
296 lines (233 loc) · 15.1 KB
/
2_2_robustnessanalysis.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
clear
use "Data_Fourcountry_Main_20220408_anonymised_prepared.dta"
*****************
*** Dropping missing values
*****************
drop if percentkepttg==. | percentgivendg==.
*******
*** Linear regressions
*******
reg percentgivendg costat recdgnone recdgmid recdghigh age male if country=="germany"
estat ic
reg percentgivendg ladder recdgnone recdgmid recdghigh age male if country=="germany"
estat ic
reg percentgivendg costat recdgnone recdgmid recdghigh age male if country=="poland"
estat ic
reg percentgivendg ladder recdgnone recdgmid recdghigh age male if country=="poland"
estat ic
reg percentgivendg costat recdgnone recdgmid recdghigh age male if country=="sweden"
estat ic
reg percentgivendg ladder recdgnone recdgmid recdghigh age male if country=="sweden"
estat ic
reg percentgivendg costat recdgnone recdgmid recdghigh age male if country=="usa"
estat ic
reg percentgivendg ladder recdgnone recdgmid recdghigh age male if country=="usa"
estat ic
reg percentgivendg costat recdgnone recdgmid recdghigh age male, vce(cluster country)
estat ic
reg percentgivendg ladder recdgnone recdgmid recdghigh age male, vce(cluster country)
estat ic
*Time dictator game
reg percentkepttg costat rectgnone rectgmid rectghigh age male if country=="germany"
estat ic
reg percentkepttg ladder rectgnone rectgmid rectghigh age male if country=="germany"
estat ic
reg percentkepttg costat rectgnone rectgmid rectghigh age male if country=="poland"
estat ic
reg percentkepttg ladder rectgnone rectgmid rectghigh age male if country=="poland"
estat ic
reg percentkepttg costat rectgnone rectgmid rectghigh age male if country=="sweden"
estat ic
reg percentkepttg ladder rectgnone rectgmid rectghigh age male if country=="sweden"
estat ic
reg percentkepttg costat rectgnone rectgmid rectghigh age male if country=="usa"
estat ic
reg percentkepttg ladder rectgnone rectgmid rectghigh age male if country=="usa"
estat ic
reg percentkepttg costat rectgnone rectgmid rectghigh age male, vce(cluster country)
estat ic
reg percentkepttg ladder rectgnone rectgmid rectghigh age male, vce(cluster country)
estat ic
*******
** Robustness checks, Per Country
*******
levelsof country, local(land)
foreach i of local land {
*** Robustness different status
//drop costat outlier
preserve
keep if country == `"`i'"'
sum costat, detail
keep if inrange(costat, r(p5), r(p95))
*Money dictator game
churdle linear percentgivendg costat recdgnone recdgmid recdghigh age male if country == `"`i'"', select(costat recdgnone recdgmid recdghigh age male) ll(0)
est sto rob_`i'_dg_nooutlier
*Time dictator game
churdle linear percentkepttg costat rectgnone rectgmid rectghigh age male if country == `"`i'"', select(costat rectgnone rectgmid rectghigh age male) ll(0)
est sto rob_`i'_tg_nooutlier
restore
//split objective measures
churdle linear percentgivendg isced recdgnone recdgmid recdghigh age male if country == `"`i'"', select(isced recdgnone recdgmid recdghigh age male) ll(0)
est sto rob_`i'_dg_isced
churdle linear percentgivendg eqincome2decile recdgnone recdgmid recdghigh age male if country == `"`i'"', select(eqincome2decile recdgnone recdgmid recdghigh age male) ll(0)
est sto rob_`i'_dg_income
if `"`i'"'!="sweden" {
churdle linear percentgivendg siops2 recdgnone recdgmid recdghigh age male if country == `"`i'"', select(siops2 recdgnone recdgmid recdghigh age male) ll(0)
est sto rob_`i'_dg_siops
}
churdle linear percentkepttg isced rectgnone rectgmid rectghigh age male if country == `"`i'"', select(isced rectgnone rectgmid rectghigh age male) ll(0)
est sto rob_`i'_tg_isced
churdle linear percentkepttg eqincome2decile rectgnone rectgmid rectghigh age male if country == `"`i'"', select(eqincome2decile rectgnone rectgmid rectghigh age male) ll(0)
est sto rob_`i'_tg_income
if `"`i'"'!="sweden" {
churdle linear percentkepttg siops2 rectgnone rectgmid rectghigh age male if country == `"`i'"', select(siops2 rectgnone rectgmid rectghigh age male) ll(0)
est sto rob_`i'_tg_siops
}
//other ostat definitions
if `"`i'"'!="sweden" {
churdle linear percentgivendg costatall recdgnone recdgmid recdghigh age male if country == `"`i'"', select(costatall recdgnone recdgmid recdghigh age male) ll(0)
est sto rob_`i'_dg_ostatall
churdle linear percentgivendg costatincomesiops recdgnone recdgmid recdghigh age male if country == `"`i'"', select(costatincomesiops recdgnone recdgmid recdghigh age male) ll(0)
est sto rob_`i'_dg_ostatincsio
churdle linear percentgivendg costatedusiops recdgnone recdgmid recdghigh age male if country == `"`i'"', select(costatedusiops recdgnone recdgmid recdghigh age male) ll(0)
est sto rob_`i'_dg_ostatedusio
}
churdle linear percentgivendg costateduincome recdgnone recdgmid recdghigh age male if country == `"`i'"', select(costateduincome recdgnone recdgmid recdghigh age male) ll(0)
est sto rob_`i'_dg_ostateduinc
if `"`i'"'!="sweden" {
churdle linear percentkepttg costatall rectgnone rectgmid rectghigh age male if country == `"`i'"', select(costatall rectgnone rectgmid rectghigh age male) ll(0)
est sto rob_`i'_tg_ostatall
churdle linear percentkepttg costatincomesiops rectgnone rectgmid rectghigh age male if country == `"`i'"', select(costatincomesiops rectgnone rectgmid rectghigh age male) ll(0)
est sto rob_`i'_tg_ostatincsio
churdle linear percentkepttg costatedusiops rectgnone rectgmid rectghigh age male if country == `"`i'"', select(costatedusiops rectgnone rectgmid rectghigh age male) ll(0)
est sto rob_`i'_tg_ostatedusio
}
churdle linear percentkepttg costateduincome rectgnone rectgmid rectghigh age male if country == `"`i'"', select(costateduincome rectgnone rectgmid rectghigh age male) ll(0)
est sto rob_`i'_tg_ostateduinc
//imputed and not imputed
if `"`i'"'!="sweden" {
churdle linear percentgivendg siops recdgnone recdgmid recdghigh age male if country == `"`i'"', select(siops recdgnone recdgmid recdghigh age male) ll(0)
est sto rob_`i'_dg_siops2
}
churdle linear percentgivendg eqincomedecile recdgnone recdgmid recdghigh age male if country == `"`i'"', select(eqincomedecile recdgnone recdgmid recdghigh age male) ll(0)
est sto rob_`i'_dg_income2
if `"`i'"'!="sweden" {
churdle linear percentkepttg siops rectgnone rectgmid rectghigh age male if country == `"`i'"', select(siops rectgnone rectgmid rectghigh age male) ll(0)
est sto rob_`i'_tg_siops2
}
churdle linear percentkepttg eqincomedecile rectgnone rectgmid rectghigh age male if country == `"`i'"', select(eqincomedecile rectgnone rectgmid rectghigh age male) ll(0)
est sto rob_`i'_tg_income2
esttab rob_`i'_dg_* using robustdg_`i'_20211019.rtf, scalars("ll Log likelihood") onecell label starlevels(+ 0.10 * 0.05 ** 0.01 *** 0.001) replace
esttab rob_`i'_tg_* using robusttg_`i'_20211019.rtf, scalars("ll Log likelihood") onecell label starlevels(+ 0.10 * 0.05 ** 0.01 *** 0.001) replace
}
*******
** Robustness checks, Pooled
*******
*** Robustness different status
//drop ostat outlier
preserve
sum costat, detail
keep if inrange(costat, r(p5), r(p94))
*Money dictator game
churdle linear percentgivendg costat recdgnone recdgmid recdghigh age male, select(costat recdgnone recdgmid recdghigh age male) ll(0) vce(cluster country)
est sto rob_dg_nooutlier
*Time dictator game
churdle linear percentkepttg costat rectgnone rectgmid rectghigh age male, select(costat rectgnone rectgmid rectghigh age male) ll(0) vce(cluster country)
est sto rob_tg_nooutlier
restore
//split objective measures
churdle linear percentgivendg isced recdgnone recdgmid recdghigh age male, select(isced recdgnone recdgmid recdghigh age male) ll(0) vce(cluster country)
est sto rob_dg_isced
churdle linear percentgivendg eqincome2decile recdgnone recdgmid recdghigh age male, select(eqincome2decile recdgnone recdgmid recdghigh age male) ll(0) vce(cluster country)
est sto rob_dg_income
churdle linear percentgivendg siops2 recdgnone recdgmid recdghigh age male, select(siops2 recdgnone recdgmid recdghigh age male) ll(0) vce(cluster country)
est sto rob_dg_siops
churdle linear percentkepttg isced rectgnone rectgmid rectghigh age male, select(isced rectgnone rectgmid rectghigh age male) ll(0) vce(cluster country)
est sto rob_tg_isced
churdle linear percentkepttg eqincome2decile rectgnone rectgmid rectghigh age male, select(eqincome2decile rectgnone rectgmid rectghigh age male) ll(0) vce(cluster country)
est sto rob_tg_income
churdle linear percentkepttg siops2 rectgnone rectgmid rectghigh age male, select(siops2 rectgnone rectgmid rectghigh age male) ll(0) vce(cluster country)
est sto rob_tg_siops
//other ostat definitions
churdle linear percentgivendg costatall recdgnone recdgmid recdghigh age male, select(costatall recdgnone recdgmid recdghigh age male) ll(0) vce(cluster country)
est sto rob_dg_ostatall
churdle linear percentgivendg costatincomesiops recdgnone recdgmid recdghigh age male, select(costatincomesiops recdgnone recdgmid recdghigh age male) ll(0) vce(cluster country)
est sto rob_dg_ostatincsio
churdle linear percentgivendg costatedusiops recdgnone recdgmid recdghigh age male, select(costatedusiops recdgnone recdgmid recdghigh age male) ll(0) vce(cluster country)
est sto rob_dg_ostatedusio
churdle linear percentgivendg costateduincome recdgnone recdgmid recdghigh age male, select(costateduincome recdgnone recdgmid recdghigh age male) ll(0) vce(cluster country)
est sto rob_dg_ostateduinc
churdle linear percentkepttg costatall rectgnone rectgmid rectghigh age male, select(costatall rectgnone rectgmid rectghigh age male) ll(0) vce(cluster country)
est sto rob_tg_ostatall
churdle linear percentkepttg costatincomesiops rectgnone rectgmid rectghigh age male, select(costatincomesiops rectgnone rectgmid rectghigh age male) ll(0) vce(cluster country)
est sto rob_tg_ostatincsio
churdle linear percentkepttg costatedusiops rectgnone rectgmid rectghigh age male, select(costatedusiops rectgnone rectgmid rectghigh age male) ll(0) vce(cluster country)
est sto rob_tg_ostatedusio
churdle linear percentkepttg costateduincome rectgnone rectgmid rectghigh age male, select(costateduincome rectgnone rectgmid rectghigh age male) ll(0) vce(cluster country)
est sto rob_tg_ostateduinc
//imputed and not imputed
churdle linear percentgivendg siops recdgnone recdgmid recdghigh age male, select(siops recdgnone recdgmid recdghigh age male) ll(0) vce(cluster country)
est sto rob_dg_siops2
churdle linear percentgivendg eqincomedecile recdgnone recdgmid recdghigh age male, select(eqincomedecile recdgnone recdgmid recdghigh age male) ll(0) vce(cluster country)
est sto rob_dg_income2
churdle linear percentkepttg siops rectgnone rectgmid rectghigh age male, select(siops rectgnone rectgmid rectghigh age male) ll(0) vce(cluster country)
est sto rob_tg_siops2
churdle linear percentkepttg eqincomedecile rectgnone rectgmid rectghigh age male, select(eqincomedecile rectgnone rectgmid rectghigh age male) ll(0) vce(cluster country)
est sto rob_tg_income2
esttab rob_dg_* using robustdg.rtf, scalars("ll Log likelihood") onecell label starlevels(+ 0.10 * 0.05 ** 0.01 *** 0.001) replace
esttab rob_tg_* using robusttg.rtf, scalars("ll Log likelihood") onecell label starlevels(+ 0.10 * 0.05 ** 0.01 *** 0.001) replace
******
** Checking for interactions
******
//make low receiver to reference category
gen receiverdg2 = receiverdg
replace receiverdg2 = 0 if receiverdg==1
replace receiverdg2 = 1 if receiverdg==0
gen receivertg2 = receivertg
replace receivertg2 = 0 if receivertg==1
replace receivertg2 = 1 if receivertg==0
//mdg
churdle linear percentgivendg c.costat##i.receiverdg2 age male, select(c.costat##i.receiverdg2 age male) ll(0) vce(cluster country)
est sto interaction_mdg_1
churdle linear percentgivendg c.ladder##i.receiverdg2 age male, select(c.ladder##i.receiverdg2 age male) ll(0) vce(cluster country)
est sto interaction_mdg_2
churdle linear percentgivendg c.costat##i.receiverdg2 age male if country=="germany", select(c.costat##i.receiverdg2 age male) ll(0)
est sto interaction_mdg_ger1
churdle linear percentgivendg c.ladder##i.receiverdg2 age male if country=="germany", select(c.ladder##i.receiverdg2 age male) ll(0)
est sto interaction_mdg_ger2
churdle linear percentgivendg c.costat##i.receiverdg2 age male if country=="poland", select(c.costat##i.receiverdg2 age male) ll(0)
est sto interaction_mdg_pol1
churdle linear percentgivendg c.ladder##i.receiverdg2 age male if country=="poland", select(c.ladder##i.receiverdg2 age male) ll(0)
est sto interaction_mdg_pol2
churdle linear percentgivendg c.costat##i.receiverdg2 age male if country=="usa", select(c.costat##i.receiverdg2 age male) ll(0)
est sto interaction_mdg_usa1
churdle linear percentgivendg c.ladder##i.receiverdg2 age male if country=="usa", select(c.ladder##i.receiverdg2 age male) ll(0)
est sto interaction_mdg_usa2
churdle linear percentgivendg c.costat##i.receiverdg2 age male if country=="sweden", select(c.costat##i.receiverdg2 age male) ll(0)
est sto interaction_mdg_swe1
churdle linear percentgivendg c.ladder##i.receiverdg2 age male if country=="sweden", select(c.ladder##i.receiverdg2 age male) ll(0)
est sto interaction_mdg_swe2
//tdg
churdle linear percentkepttg c.costat##i.receivertg2 age male, select(c.costat##i.receivertg2 age male) ll(0) vce(cluster country)
est sto interaction_tdg_1
churdle linear percentkepttg c.ladder##i.receivertg2 age male, select(c.ladder##i.receivertg2 age male) ll(0) vce(cluster country)
est sto interaction_tdg_2
churdle linear percentkepttg c.costat##i.receivertg2 age male if country=="germany", select(c.costat##i.receivertg2 age male) ll(0)
est sto interaction_tdg_ger1
churdle linear percentkepttg c.ladder##i.receivertg2 age male if country=="germany", select(c.ladder##i.receivertg2 age male) ll(0)
est sto interaction_tdg_ger2
churdle linear percentkepttg c.costat##i.receivertg2 age male if country=="poland", select(c.costat##i.receivertg2 age male) ll(0)
est sto interaction_tdg_pol1
churdle linear percentkepttg c.ladder##i.receivertg2 age male if country=="poland", select(c.ladder##i.receivertg2 age male) ll(0)
est sto interaction_tdg_pol2
churdle linear percentkepttg c.costat##i.receivertg2 age male if country=="usa", select(c.costat##i.receivertg2 age male) ll(0)
est sto interaction_tdg_usa1
churdle linear percentkepttg c.ladder##i.receivertg2 age male if country=="usa", select(c.ladder##i.receivertg2 age male) ll(0)
est sto interaction_tdg_usa2
churdle linear percentkepttg c.costat##i.receivertg2 age male if country=="sweden", select(c.costat##i.receivertg2 age male) ll(0)
est sto interaction_tdg_swe1
churdle linear percentkepttg c.ladder##i.receivertg2 age male if country=="sweden", select(c.ladder##i.receivertg2 age male) ll(0)
est sto interaction_tdg_swe2
//export
esttab interaction_mdg_* using interaction_mdg.rtf, scalars("ll Log likelihood" "aic AIC" "bic BIC") onecell label starlevels(+ 0.10 * 0.05 ** 0.01 *** 0.001) replace
esttab interaction_tdg_* using interaction_tdg.rtf, scalars("ll Log likelihood" "aic AIC" "bic BIC") onecell label starlevels(+ 0.10 * 0.05 ** 0.01 *** 0.001) replace