Stata Code for Two-Part Model
Example
y is dependent variable on raw scale
ydum is dummy variable indicating if y>0
lny is logarithm of y if y>0
Part 1
logit ydum $x
or probit ydum $x
Part 2
regress y $x if y>0
or regress lny $x if y>0
or glm y $x if y>0, l(log) f(gamma)
or trnbn0 y $x if y>0
战战兢兢 发表于 2008-6-10 09:34 有人知道,two part model是如何在stata中实现的吗?这个模型经常用在因变量有一部分大量取零,另一部分是大于零的连续数值
*设y是非负的、连续的因变量,其中大量观测值为零;x1-x5是自变量。根据Duan et al.(1983):
g z=y>0 g lny=ln(y)
recode lny(.=0) /*此处的“0”可以换成任意实数*/ cap pr drop twopart pr twopart args lnL xg xb sigma qui replace `lnL'=($ML_y1==1)*ln(normal(`xg'))+($ML_y1==0)*ln(normal(-`xg '))+($ML_y1==1)*ln(normalden($ML_y2,`xb',`sigma')) end ml mod lf twopart (xg:z=x1-x5)(xb:lny=x1-x5)(sigma:lny=)
ml max