在面板设置中使用gllamm作为Heckman选择模型

时间:2017-07-14 09:26:11

标签: selection stata selectionmodel

我想将Heckman选择模型用于面板数据。我用Google搜索,似乎Stata中的gllamm能够做到这一点。

但是,我找不到如何使用它的正确教程。我尝试按Sophia Rabe-Hesketh跟踪一个,但无法理解这些步骤。

我目前限制自己使用横截面数据。它应该等同于Stata中的内置heckman命令。也就是说,

use http://www.stata-press.com/data/r13/womenwk
gen gotowork=1
replace gotowork=0 if wage==.
heckman wage educ age, select(gotowork=married children educ age)

但是,我很难将这些变量映射到gllamm教程。具体来说,在幻灯片10中,heckman命令中有y1y2。但是gllamm中只有一个y。如果gotoworky1wagey2,如何定义此y变量?它应该是wage吗?

当我尝试实施以下步骤时,

reshape long y, i(id) j(var)

作为

reshape long wage, i(id) j(var)

我说错误

variable var contains all missing values

为什么呢?

目前我通过执行以下步骤来解决此问题

tab gotowork, gen(i)

我的估算步骤又出现了另一个错误

gen married_i1 = married*i1
gen children_i1 = children*i1
gen educ_i1 = educ*i1
gen age_i1 = age*i1

gen wage_i2 = wage*i2
gen educ_i2 = educa*i2
gen age_i2 = age*i2

eq load: i1 i2 
constraint define 1 [id1_1]i1 = 1 
gllamm wage married_i1 children_i1 educ_i1 age_i1 i1 wage_i2 educ_i2 age_i2 i2, i(id) eqs(load) nocons constr(1)

错误消息:

initial values not feasible
(error occurred in ML computation)
(use trace option and check correctness of initial model)

任何人都可以帮我解释这些错误以及如何正确使用gllamm作为Heckman选择模型吗?

我的最终目标是实施面板Heckman选择模型。有没有其他STATA(或R)包可以做到这一点?

感谢。

1 个答案:

答案 0 :(得分:0)

如果你重命名工资y1和gotowork y2,这将有效。从wide到long的reshape函数将创建新的变量var。