我想将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命令中有y1
和y2
。但是gllamm中只有一个y。如果gotowork
为y1
且wage
为y2
,如何定义此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)包可以做到这一点?
感谢。
答案 0 :(得分:0)
如果你重命名工资y1和gotowork y2,这将有效。从wide到long的reshape函数将创建新的变量var。