I run a fixed effects regression in a linear probability model of health outcomes/behaviors and local employment change over three waves. One of these behaviors is the quantity of cigarettes consumed. It was suggested that an OLS model with Heckman correction for number of cigarettes consumed would model the decision to smoke or not, and then conditional on this fact, the quantity smoked. I agree with this, but am not sure how to apply a Heckman selection model in panel data with fixed effects.
In my analysis I model several outcomes and behaviors in Stata as below, and would like to keep this approach when applying the heckman correction, for comparability across outcomes studied and also because I need to apply weights to my analysis of cigarette consumption.
I saw a suggestion on stack exchange to cluster the standard errors on the panel id (https://stats.stackexchange.com/ques...and-panel-data) so would that mean updating my current clustering from county to individual id? I xtset the data by id year.
Alternatively I saw a comment by Phil Bromiley that
Fixed effects can be done with i.panel in heckman. You'll probably need to increase matsize and you'll end up with a pile of parameter estimate on the panels that are not of interest. xtreg y x with the panel called panel is identical to reg y x i.panel
Although I found that the UNESCAP suggest doing the following:
Heckman depvar indepvar1 indepvar2 … dum1 dum2 …, select(indepvar1 indepvar2 … dum1 dum2 … overidvar1…) options
https://artnet.unescap.org/tid/artnet/mtg/cbtr7-s12.pdf
But I'm not even sure what the dummies I'm supposed to add are....
I thought xtheckman might save me, but it's a random effects regression with selection and I need fixed effects (https://www.stata.com/new-in-stata/xtheckman/).
I would really appreciate applied advice on what I should do to my analysis to apply a Heckman correction.
Thanks for any help,
John
This is my core model:
Code:
. xtreg no_cigs_cons_deflated_y psum_unemployed_total_cont_y i.yrlycurrent_county_y1 i.year age_y i.marita
> lstatus_y if has_y0_questionnaire==1 & has_y5_questionnaire==1, cluster (current_county_y1) fe robust
note: 6.yrlycurrent_county_y1 omitted because of collinearity
note: 15.yrlycurrent_county_y1 omitted because of collinearity
note: 18.yrlycurrent_county_y1 omitted because of collinearity
note: 23.yrlycurrent_county_y1 omitted because of collinearity
note: 25.yrlycurrent_county_y1 omitted because of collinearity
note: 26.yrlycurrent_county_y1 omitted because of collinearity
note: 29.yrlycurrent_county_y1 omitted because of collinearity
note: 5.year omitted because of collinearity
Fixed-effects (within) regression Number of obs = 1152
Group variable: id Number of groups = 642
R-sq: within = 0.0605 Obs per group: min = 1
between = 0.0179 avg = 1.8
overall = 0.0145 max = 2
F(13,28) = .
corr(u_i, Xb) = -0.8476 Prob > F = .
(Std. Err. adjusted for 29 clusters in current_county_y1)
----------------------------------------------------------------------------------------------
| Robust
no_cigs_cons_deflated_y | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-----------------------------+----------------------------------------------------------------
psum_unemployed_total_cont_y | -.2387741 .1100417 -2.17 0.039 -.4641842 -.013364
|
yrlycurrent_county_y1 |
Clare | 1.84201 2.511288 0.73 0.469 -3.302129 6.98615
Cork | .9439361 2.271351 0.42 0.681 -3.708716 5.596588
Donegal | 0 (omitted)
Dublin 16 | .0798436 2.427069 0.03 0.974 -4.891781 5.051468
Dublin City | 1.268084 2.435825 0.52 0.607 -3.721478 6.257646
DĂșn Laoghaire-Rathdown | .4580872 2.367576 0.19 0.848 -4.391673 5.307847
Fingal | .1145035 2.333406 0.05 0.961 -4.665262 4.894269
Galway | -16.52429 .3514215 -47.02 0.000 -17.24415 -15.80444
Galway City | -17.09233 .4548787 -37.58 0.000 -18.0241 -16.16055
Kerry | 1.898583 2.566648 0.74 0.466 -3.358958 7.156123
Kildare | 1.688322 2.394418 0.71 0.487 -3.21642 6.593064
Kilkenny | 0 (omitted)
Laois | 2.852193 1.208139 2.36 0.025 .377433 5.326952
Leitrim | 2.076192 2.333259 0.89 0.381 -2.703273 6.855657
Limerick | 0 (omitted)
Longford | .5373577 2.372396 0.23 0.822 -4.322276 5.396991
Louth | 1.385586 2.386451 0.58 0.566 -3.502838 6.27401
Mayo | -17.88611 .3841588 -46.56 0.000 -18.67302 -17.0992
Meath | .1920723 2.276061 0.08 0.933 -4.470227 4.854372
Monaghan | 0 (omitted)
Offaly | .9486299 2.335269 0.41 0.688 -3.834952 5.732212
Roscommon | 0 (omitted)
Sligo | 0 (omitted)
South Dublin | .0798436 2.427069 0.03 0.974 -4.891781 5.051468
Tipperary | -.0933459 .3734837 -0.25 0.804 -.8583927 .6717008
Tipperary North | 0 (omitted)
Waterford | -15.97167 .4552278 -35.09 0.000 -16.90416 -15.03918
Westmeath | 1.313337 2.349551 0.56 0.581 -3.4995 6.126175
Wexford | -.604106 2.456075 -0.25 0.808 -5.635147 4.426935
Wicklow | 3.927572 3.03076 1.30 0.206 -2.280659 10.1358
|
5.year | 0 (omitted)
age_y | .0837821 .0470026 1.78 0.086 -.0124983 .1800625
|
maritalstatus_y |
Cohabiting | .5289705 .4076338 1.30 0.205 -.3060295 1.363971
Separated | -.547115 .1271997 -4.30 0.000 -.8076718 -.2865582
Divorced | -6.950598 1.454566 -4.78 0.000 -9.930142 -3.971054
Widowed | 3.47176 1.996616 1.74 0.093 -.6181229 7.561643
Single/Never married | -1.460055 1.615909 -0.90 0.374 -4.770094 1.849984
|
_cons | 5.822622 2.518999 2.31 0.028 .6626857 10.98256
-----------------------------+----------------------------------------------------------------
sigma_u | 9.0440127
sigma_e | 3.4804153
rho | .87100821 (fraction of variance due to u_i)
----------------------------------------------------------------------------------------------Code:
heckman no_cigs_cons_y psum_unemployed_total_cont_y i.yrlycurrent_county_y1 i.year age_y i.maritalstatus_y [pw=ipw55] if has_y0_questionnaire==1 & has_y5_questionnaire==1, select(age_y medical_card_y i.year) vce (cluster id)
0 Response to Applying the Heckman selection model in panel data with fixed effects
Post a Comment