温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。
New!
lianxh
命令发布了:
随时搜索推文、Stata 资源。安装命令如下:
. ssc install lianxh
详情参见帮助文件 (有惊喜):
. help lianxh
⛳ Stata 系列推文:
作者:张少鹏 (哈尔滨工业大学)
邮箱:13251610878@163.com
编者按:本文主要摘译自下文,特此致谢!
Source:Belotti F, Deb P, Manning W G, et al. twopm: Two-part models[J]. The Stata Journal, 2015, 15(1): 3-20. -Link-
目录
实证分析中的许多结果 (twopm
。
值得说明的是,两部模型 twopm
命令有以下几个优点:
svy:
,因此它可以调整参数估计中的复杂调查设计以及这些估计的标准误;predict
和 margin
,很容易重新获得因变量的总体预测值和组合模型的边际效应;应用 twopm
命令估计两部模型的步骤主要有两个部分,通常使用第一部分的 logit
和 probit
方法来预测二元离散变量,使用第二部分的 ols
和 glm
方法来拟合连续变量。此外,可以采用两个语法进行指定:第一种语法在第一部分和第二部分中可以自动指定相同的回归变量,通常推荐使用;第二种语法允许用户在第一部分和第二部分中指定不同的回归变量。
安装该命令,既可以使用 Stata 的官方命令 ssc install
,也可以使用连享会最新推出的国内镜像 cnssc install
命令。
安装方法 1:Stata 官方安装 ssc
. ssc install twopm, replace
安装方法 2:连享会的镜像 cnssc
. ssc install cnssc, replace //使用 cnssc 命令的话,需要事先安装好此命令
. cnssc install twopm, replace 
安装好命令之后,可以输入 help twopm
,查看 twopm
的帮助文档。
. help twopm
twopm
命令第一种语法结构如下:
twopm depvar [indepvars] [if] [in] [weight], firstpart(f_options) secondpart(s_options) [twopm_options]
twopm
命令第二种语法结构如下:
twopm equation1 equation2 [if] [in] [weight], firstpart(f_options) secondpart(s_options) [twopm_options]
where equation1 and equation2 are specified as (depvar [=] [indepvars])
firstpart(f_options)
:指定第一部分的模型,可以为 logit
回归或 probit
回归;secondpart(s_options)
:指定第二部分的模型,可以为 ols
线性回归或 glm
广义线性回归;vce(vcetype)
:vcetype
可以是 conventional
、robust
、cluster
、clustvar
、bootstrap
或 jackknife
;robust
:等价于 vce(robust)
;cluster(clustvar)
:等价于 vce(cluster clustvar)
;suest
:将第一部分和第二部分的估计结果结合起来,得到同期协方差矩阵;level(#)
:设置置信度,默认为 level(95)
;nocnsreport
:不显示约束条件;display_options
:控制遗漏变量、基数和空单元格的间距和显示。
本文使用女性工资数据进行演示,这是因为只有参加工作的女性工资数据才能被观察到,而未参加工作的女性工资数据缺失,因此在研究女性工资这一受限因变量的影响因素时存在估计偏差,故而采用两部模型 twopm
命令进行回归分析。
. *调入数据
. webuse womenwk, clear
. replace wage = 0 if wage==. //将 wage 变量的缺失值替换为 0
在第一部分和第二部分对收入 wage 的回归中使用相同的自变量,分别是受教育水平 education、年龄 age、是否结婚 married 和孩子数量 children。首先,使用 logit
模型进行第一部分回归,使用 glm
方法进行第二部分回归。
. *第一部分使用 logit 模型,第二部分使用 glm 方法
. twopm wage educ age married children, firstpart(logit) secondpart(glm)
Two-part model
------------------------------------------------------------------------------
Log pseudolikelihood = -5187.675 Number of obs = 2000
Part 1: logit
------------------------------------------------------------------------------
Number of obs = 2000
LR chi2(4) = 476.62
Prob > chi2 = 0.0000
Log likelihood = -1027.9144 Pseudo R2 = 0.1882
Part 2: glm
------------------------------------------------------------------------------
Number of obs = 1343
Deviance = 38542.35905 (1/df) Deviance = 28.80595
Pearson = 38542.35905 (1/df) Pearson = 28.80595
Variance function: V(u) = 1 [Gaussian]
Link function : g(u) = u [Identity]
AIC = 6.202175
Log likelihood = -4159.760537 BIC = 28905.2
------------------------------------------------------------------------------
wage | Coefficient Std. err. z P>|z| [95% conf. interval]
-------------+----------------------------------------------------------------
logit |
education | 0.098 0.019 5.27 0.000 0.062 0.135
age | 0.058 0.007 8.02 0.000 0.044 0.072
married | 0.742 0.126 5.87 0.000 0.494 0.990
children | 0.764 0.052 14.84 0.000 0.663 0.865
_cons | -4.159 0.332 -12.53 0.000 -4.810 -3.508
-------------+----------------------------------------------------------------
glm |
education | 0.875 0.050 17.42 0.000 0.777 0.974
age | 0.151 0.019 7.86 0.000 0.114 0.189
married | -0.540 0.357 -1.51 0.131 -1.240 0.161
children | -0.686 0.103 -6.65 0.000 -0.889 -0.484
_cons | 7.934 0.926 8.56 0.000 6.119 9.750
------------------------------------------------------------------------------
基于上述回归结果可以发现,在第一部分,所有协变量的回归系数显著性都通过了统计检验,并且对收入(工作)发生概率均具有显著正向影响;在第二部分,只有是否结婚 married 没有通过显著性检验,其他协变量对工资收入的增长都存在显著影响。区别在于受教育水平 education 和年龄 age 对工资收入是显著正向影响,而孩子数量 children 则表现为显著负向影响。
其次,使用 probit
模型进行第一部分回归,使用 ols
方法进行第二部分回归。
. *第一部分使用 probit 模型,第二部分使用 ols 方法
. twopm wage educ age married children, firstpart(probit) secondpart(regress)
Two-part model
------------------------------------------------------------------------------
Log pseudolikelihood = -5186.8221 Number of obs = 2000
Part 1: probit
------------------------------------------------------------------------------
Number of obs = 2000
LR chi2(4) = 478.32
Prob > chi2 = 0.0000
Log likelihood = -1027.0616 Pseudo R2 = 0.1889
Part 2: regress
------------------------------------------------------------------------------
Number of obs = 1343
F( 4, 1338) = 128.55
Prob > F = 0.0000
R-squared = 0.2776
Adj R-squared = 0.2755
Log likelihood = -4159.7605 Root MSE = 5.3671
------------------------------------------------------------------------------
wage | Coefficient Std. err. z P>|z| [95% conf. interval]
-------------+----------------------------------------------------------------
probit |
education | 0.058 0.011 5.32 0.000 0.037 0.080
age | 0.035 0.004 8.21 0.000 0.026 0.043
married | 0.431 0.074 5.81 0.000 0.285 0.576
children | 0.447 0.029 15.56 0.000 0.391 0.504
_cons | -2.467 0.193 -12.81 0.000 -2.845 -2.090
-------------+----------------------------------------------------------------
regress |
education | 0.875 0.050 17.42 0.000 0.777 0.974
age | 0.151 0.019 7.86 0.000 0.114 0.189
married | -0.540 0.357 -1.51 0.131 -1.240 0.161
children | -0.686 0.103 -6.65 0.000 -0.889 -0.484
_cons | 7.934 0.926 8.56 0.000 6.119 9.750
------------------------------------------------------------------------------
可以发现,该结果与上面的回归结果基本一致,只是在回归系数方面略有差异。
最后,在使用 probit
模型进行第一部分回归和使用 ols
方法进行第二部分回归的基础上,采用收入 wage 的对数值作为第二部分的因变量。
. *在此基础上,还可以使用 wage 变量的对数值作为第二部分的因变量
. twopm wage educ age married children, firstpart(probit) secondpart(regress, log)
Two-part model
------------------------------------------------------------------------------
Log pseudolikelihood = -1053.9723 Number of obs = 2000
Part 1: probit
------------------------------------------------------------------------------
Number of obs = 2000
LR chi2(4) = 478.32
Prob > chi2 = 0.0000
Log likelihood = -1027.0616 Pseudo R2 = 0.1889
Part 2: regress_log
------------------------------------------------------------------------------
Number of obs = 1343
F( 4, 1338) = 115.72
Prob > F = 0.0000
R-squared = 0.2570
Adj R-squared = 0.2548
Log likelihood = -26.910688 Root MSE = 0.2473
------------------------------------------------------------------------------
wage | Coefficient Std. err. z P>|z| [95% conf. interval]
-------------+----------------------------------------------------------------
probit |
education | 0.058 0.011 5.32 0.000 0.037 0.080
age | 0.035 0.004 8.21 0.000 0.026 0.043
married | 0.431 0.074 5.81 0.000 0.285 0.576
children | 0.447 0.029 15.56 0.000 0.391 0.504
_cons | -2.467 0.193 -12.81 0.000 -2.845 -2.090
-------------+----------------------------------------------------------------
regress_log |
education | 0.038 0.002 16.42 0.000 0.033 0.043
age | 0.007 0.001 7.50 0.000 0.005 0.008
married | -0.030 0.016 -1.82 0.070 -0.062 0.002
children | -0.032 0.005 -6.76 0.000 -0.041 -0.023
_cons | 2.448 0.043 57.35 0.000 2.365 2.532
------------------------------------------------------------------------------
可以发现,第一部分的回归结果与上面的结果完全一致,但是第二部分的结果除了回归系数相比而言有所减小之外,是否结婚 married 也由不显著变为显著。
在第一部分和第二部分对收入 wage 的回归中使用不一样的自变量,具体地,第一部分的自变量分别是受教育水平 education、年龄 age 和孩子数量 children;第二部分的自变量分别是受教育水平 education、年龄 age 和是否结婚 married。首先,使用 logit
模型进行第一部分回归,使用 glm
方法进行第二部分回归。
. *第一部分使用 logit 模型,第二部分使用 glm 方法
. twopm (wage = educ age children) (wage = educ age married), firstpart(logit) secondpart(glm)
Two-part model
------------------------------------------------------------------------------
Log pseudolikelihood = -5226.9421 Number of obs = 2000
Part 1: logit
------------------------------------------------------------------------------
Number of obs = 2000
LR chi2(3) = 441.73
Prob > chi2 = 0.0000
Log likelihood = -1045.3561 Pseudo R2 = 0.1744
Part 2: glm
------------------------------------------------------------------------------
Number of obs = 1343
Deviance = 39815.66688 (1/df) Deviance = 29.73537
Pearson = 39815.66688 (1/df) Pearson = 29.73537
Variance function: V(u) = 1 [Gaussian]
Link function : g(u) = u [Identity]
AIC = 6.233188
Log likelihood = -4181.586035 BIC = 30171.3
------------------------------------------------------------------------------
wage | Coefficient Std. err. z P>|z| [95% conf. interval]
-------------+----------------------------------------------------------------
logit |
education | 0.120 0.018 6.56 0.000 0.084 0.156
age | 0.069 0.007 9.88 0.000 0.055 0.083
children | 0.689 0.047 14.51 0.000 0.596 0.782
_cons | -4.269 0.329 -12.97 0.000 -4.914 -3.624
-------------+----------------------------------------------------------------
glm |
education | 0.904 0.051 17.77 0.000 0.804 1.004
age | 0.151 0.020 7.70 0.000 0.112 0.189
married | -0.258 0.361 -0.71 0.475 -0.965 0.449
_cons | 6.019 0.895 6.73 0.000 4.265 7.772
------------------------------------------------------------------------------
基于上述回归结果可以发现,在第一部分,所有协变量的回归系数显著性都通过了统计检验,并且对收入 (工作) 发生概率均具有显著正向影响;但是在第二部分,只有受教育水平 education 和年龄 age 对工资收入的增长是显著正向影响,而是否结婚 married 则不具有显著影响。
其次,使用 probit
模型进行第一部分回归,使用 ols
方法进行第二部分回归。
. *第一部分使用 probit 模型,第二部分使用 ols 方法
. twopm (wage = educ age children) (wage = educ age married), firstpart(probit) secondpart(regress)
Two-part model
------------------------------------------------------------------------------
Log pseudolikelihood = -5225.6481 Number of obs = 2000
Part 1: probit
------------------------------------------------------------------------------
Number of obs = 2000
LR chi2(3) = 444.32
Prob > chi2 = 0.0000
Log likelihood = -1044.0621 Pseudo R2 = 0.1755
Part 2: regress
------------------------------------------------------------------------------
Number of obs = 1343
F( 3, 1339) = 151.77
Prob > F = 0.0000
R-squared = 0.2538
Adj R-squared = 0.2521
Log likelihood = -4181.586 Root MSE = 5.4530
------------------------------------------------------------------------------
wage | Coefficient Std. err. z P>|z| [95% conf. interval]
-------------+----------------------------------------------------------------
probit |
education | 0.071 0.011 6.65 0.000 0.050 0.092
age | 0.041 0.004 10.14 0.000 0.033 0.049
children | 0.408 0.027 15.17 0.000 0.356 0.461
_cons | -2.536 0.191 -13.30 0.000 -2.909 -2.162
-------------+----------------------------------------------------------------
regress |
education | 0.904 0.051 17.77 0.000 0.804 1.004
age | 0.151 0.020 7.70 0.000 0.112 0.189
married | -0.258 0.361 -0.71 0.475 -0.965 0.449
_cons | 6.019 0.895 6.73 0.000 4.265 7.772
------------------------------------------------------------------------------
可以发现,该结果中第一部分与上面的回归结果基本一致,只是在回归系数方面略有差异,而第二部分结果则完全一致。
最后,在使用 probit
模型进行第一部分回归和使用 ols
方法进行第二部分回归的基础上,采用收入 wage 的对数值作为第二部分的因变量。
. *在此基础上,还可以使用 wage 变量的对数值作为第二部分的因变量
. twopm (wage = educ age children) (wage = educ age married), firstpart(probit) secondpart(regress, log)
Two-part model
------------------------------------------------------------------------------
Log pseudolikelihood = -1093.5513 Number of obs = 2000
Part 1: probit
------------------------------------------------------------------------------
Number of obs = 2000
LR chi2(3) = 444.32
Prob > chi2 = 0.0000
Log likelihood = -1044.0621 Pseudo R2 = 0.1755
Part 2: regress_log
------------------------------------------------------------------------------
Number of obs = 1343
F( 3, 1339) = 134.55
Prob > F = 0.0000
R-squared = 0.2316
Adj R-squared = 0.2299
Log likelihood = -49.489211 Root MSE = 0.2514
------------------------------------------------------------------------------
wage | Coefficient Std. err. z P>|z| [95% conf. interval]
-------------+----------------------------------------------------------------
probit |
education | 0.071 0.011 6.65 0.000 0.050 0.092
age | 0.041 0.004 10.14 0.000 0.033 0.049
children | 0.408 0.027 15.17 0.000 0.356 0.461
_cons | -2.536 0.191 -13.30 0.000 -2.909 -2.162
-------------+----------------------------------------------------------------
regress_log |
education | 0.039 0.002 16.79 0.000 0.035 0.044
age | 0.007 0.001 7.34 0.000 0.005 0.008
married | -0.017 0.017 -1.00 0.315 -0.049 0.016
_cons | 2.359 0.041 57.18 0.000 2.278 2.439
------------------------------------------------------------------------------
可以发现,第一部分的回归结果与上面的结果完全一致,第二部分的结果主要是回归系数方面有所减小。
使用 twopm
命令估计两部模型的优点相信大家已经有所体会,不过它也存在一些不足,比如不允许对连续结果使用许多其他可能的模型,例如使用 Box-Cox 变换 (boxcox
) 的回归、分位数回归 (qreg
) 以及用户编写提供的其他方法。但是,上述不足仍然掩盖不了 twopm
命令在实证分析中的优势,并且随着命令的愈加完善,一定会带给广大科研工作者更多的便利。
Note:产生如下推文列表的 Stata 命令为:
lianxh heckman 自选择 两部模型, m
安装最新版lianxh
命令:
ssc install lianxh, replace
免费公开课
最新课程-直播课
专题 | 嘉宾 | 直播/回看视频 |
---|---|---|
⭐ 最新专题 | 文本分析、机器学习、效率专题、生存分析等 | |
研究设计 | 连玉君 | 我的特斯拉-实证研究设计,-幻灯片- |
面板模型 | 连玉君 | 动态面板模型,-幻灯片- |
面板模型 | 连玉君 | 直击面板数据模型 [免费公开课,2小时] |
⛳ 课程主页
⛳ 课程主页
关于我们
课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法
等
连享会小程序:扫一扫,看推文,看视频……
扫码加入连享会微信群,提问交流更方便
✏ 连享会-常见问题解答:
✨ https://gitee.com/lianxh/Course/wikis
New!
lianxh
命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh