heckman两阶段的stata命令

2. 选择性偏差校正

2.1 选择模型

选择模型有两种主要应用,一是 处理效应 (treatment effect model),即回归模型中包含一个内生的指示变量 (heckman两阶段的stata命令)。例如,管理层是否发布盈余预测 (heckman两阶段的stata命令 或 0) 对资本成本影响。二是 样本选择 (sample selection model),即回归样本为一个子样本。例如,在管理层发布盈余预测子样本中 (heckman两阶段的stata命令),对管理层盈余预测精确度的影响因素进行分析。在上述模型中,内生的 heckman两阶段的stata命令 都会导致有偏估计。

处理效应模型 (treatment effect model) 如下:

heckman两阶段的stata命令

其中,heckman两阶段的stata命令 包含截距项和一组影响 heckman两阶段的stata命令 的外生解释变量。指示性变量 heckman两阶段的stata命令 可以通过以下二元选择模型进行回归得到:

heckman两阶段的stata命令

如果 heckman两阶段的stata命令,则 heckman两阶段的stata命令,反之 heckman两阶段的stata命令,则 heckman两阶段的stata命令

通常,式 (1) 和式 (2) 的随机误差项 heckman两阶段的stata命令 和 heckman两阶段的stata命令 服从二元正态分布,其均值为 0,协方差矩阵为:

heckman两阶段的stata命令

如果随机误差项 heckman两阶段的stata命令 和 heckman两阶段的stata命令 相关 (heckman两阶段的stata命令),则 heckman两阶段的stata命令,使得式 (1) 中的 OLS 估计量 heckman两阶段的stata命令 有偏。Heckman 方法就是通过式 (2) 构造 逆米尔斯比率 (heckman两阶段的stata命令) 控制这个偏差。heckman两阶段的stata命令 计算如下:

heckman两阶段的stata命令

其中,heckman两阶段的stata命令 和 heckman两阶段的stata命令 分别为标准正态分布的密度函数和累积分布函数。然后,将计算得到 heckman两阶段的stata命令 加入式 (1) 进行回归:

heckman两阶段的stata命令

此时,式 (3) 中随机误差项 heckman两阶段的stata命令 与 heckman两阶段的stata命令 不相关,heckman两阶段的stata命令 为无偏估计量。并且,可以通过 heckman两阶段的stata命令 显著性和系数判断选择偏差是否存在以及方向。当然,式 (2) 和 式 (3) 可以用传统两步法或最大似然估计法。

上述为处理效应模型 (treatment effect model),除式 (3) 是以子样本回归外,样本选择模型与处理效应模型 (sample selection model)类似。例如,对管理层预测精确度 (heckman两阶段的stata命令) 分析中,回归样本为发布盈余预测的公司 (heckman两阶段的stata命令)。此时,式 (3) 为 heckman两阶段的stata命令。其中,heckman两阶段的stata命令 计算公式如下:

heckman两阶段的stata命令

或者,对于 heckman两阶段的stata命令 的子样本回归中,式 (3) 为 heckman两阶段的stata命令。其中,heckman两阶段的stata命令 计算如下:

heckman两阶段的stata命令

2.2 应用中存在的问题

选择模型式 (3) 与 OLS 模型式 (1) 的区别在于前者加入了逆米尔斯比率 (heckman两阶段的stata命令)。heckman两阶段的stata命令 可以识别选择性偏差主要是以下原因:

  • heckman两阶段的stata命令 是 heckman两阶段的stata命令 和 heckman两阶段的stata命令 变量的非线性函数
  • heckman两阶段的stata命令 变量从式 (3) 中已经排除

其中,heckman两阶段的stata命令 变量被假定为不会对 heckman两阶段的stata命令 变量产生直接的影响,只能通过 heckman两阶段的stata命令 产生间接影响,因此也被称为排他性约束 (exclusion restrictions)

排他性约束变量,也就是 heckman两阶段的stata命令 变量,在控制选择模型内生性问题过程中具有非常重要的作用。首先,heckman两阶段的stata命令 变量必须是外生的,否则选择模型第一阶段回归 (式 2) 系数以及 heckman两阶段的stata命令 会产生偏误;其次,heckman两阶段的stata命令 变量对 heckman两阶段的stata命令 具有较强的解释能力,使得 heckman两阶段的stata命令 能够更好的检测和控制选择偏差;最后,式 (3) 中必须有效排除 heckman两阶段的stata命令 变量的影响,即 heckman两阶段的stata命令 变量只能通过 heckman两阶段的stata命令 对 heckman两阶段的stata命令 产生间接影响,否则 heckman两阶段的stata命令 与随机误差项相关,使得 heckman两阶段的stata命令 系数估计有偏,不能有效控制 heckman两阶段的stata命令 变量的内生性。

找到一个好的 heckman两阶段的stata命令 变量是困难的。在没有排他性约束情况下,即没有 heckman两阶段的stata命令 变量,仍可以通过 heckman两阶段的stata命令 的非线性去识别偏差。但可能面临以下两个问题:

  • 由于只能通过 heckman两阶段的stata命令 的非线性识别偏差,非线性模型被错误设定为线性模型会被 heckman两阶段的stata命令 吸收。
  • 在式 (3) 中,heckman两阶段的stata命令 与 heckman两阶段的stata命令 和 heckman两阶段的stata命令 相关,这种相关性在没有排他性约束变量 (heckman两阶段的stata命令) 情况下更加严重。

进一步,高的共线性会产生以下两个问题:

  • 高共线性会使得系数的标准差变大,降低了系数的显著性。heckman两阶段的stata命令 系数可能会变得不显著,进而得出错误结论。
  • 在模型被正确设定下,即使存在高的共线性问题,系数也可以被无偏的估计。但是,事实上,选择模型被错误设定概率是很高的。若模型被错误设定,共线性会吸收这种偏差,导致系数估计有偏。

3. 应用案例

以工作和教育经历对女性工资影响研究为例,只有参加工作的女性工资数据才能被观察到,而未参加的工作女性工资数据缺失,因此在研究女性工资影响因素时存在偏差。为克服该问题,采用选择模型进行处理。第一阶段,选择女性是否结婚 (married) 和孩子数量 (children) 作为排他性约束 heckman两阶段的stata命令 变量,同时控制影响女性工资 (wage) 的工作经历 (age) 和教育程度 (educ) 变量。第二阶段,加入逆米尔斯比率 (heckman两阶段的stata命令) 进行回归。接下来,将分别以 OLSHeckman Maximum LikelihoodHeckman Two-Step、以及手工计算两步法进行回归对比。

* 下载数据值当前工作路径
* 网址: https://gitee.com/arlionn/data
. copy "https://gitee.com/arlionn/data/raw/master/data01womenwk.dta" womenwk.dta

*-调入数据
. use womenwk.dta, clear

/* 也可以在线导入数据
. use "https://gitee.com/arlionn/data/raw/master/data01/womenwk.dta", clear
*/

*ols
reg wage educ age
est store OLS

*heckman maximum likelihood
heckman wage educ age, select(married children educ age) //默认最大似然估计
est store HeckMLE

*heckman two-step  all-in-one 不可以进行cluster调整
heckman wage educ age, select(married children educ age) twostep
est store Heck2s

*heckman two-step  step-by-step 可以进行cluster调整
probit work married children educ age
est store First
predict y_hat, xb
gen pdf = normalden(y_hat)  //概率密度函数
gen cdf = normal(y_hat)     //累积分布函数
gen imr = pdf/cdf           //计算逆米尔斯比率
reg  wage educ age imr if work == 1  //女性工作子样本
est store Second
vif  //方差膨胀因子

*对比结果
local m "OLS HeckMLE Heck2s First Second"
esttab `m', mtitle(`m') nogap compress pr2 ar2
---------------------------------------------------------------------------
                 (1)          (2)          (3)          (4)          (5)   
                 OLS      HeckMLE       Heck2s        First       Second   
---------------------------------------------------------------------------
main                                                                       
education      0.897***     0.990***     0.983***    0.0584***     0.983***
             (18.00)      (18.59)      (18.23)       (5.32)      (19.46)   
age            0.147***     0.213***     0.212***    0.0347***     0.212***
              (7.83)      (10.34)       (9.61)       (8.21)      (10.25)   
married                                               0.431***             
                                                     (5.81)                
children                                              0.447***             
                                                    (15.56)                
imr                                                                4.002***
                                                                  (6.93)   
_cons          6.085***     0.486        0.734       -2.467***     0.734   
              (6.84)       (0.45)       (0.59)     (-12.81)       (0.63)   
---------------------------------------------------------------------------
select                                                                     
married                     0.445***     0.431***                          
                           (6.61)       (5.81)                             
children                    0.439***     0.447***                          
                          (15.79)      (15.56)                             
education                  0.0557***    0.0584***                          
                           (5.19)       (5.32)                             
age                        0.0365***    0.0347***                          
                           (8.79)       (8.21)                             
_cons                      -2.491***    -2.467***                          
                         (-13.16)     (-12.81)                             
---------------------------------------------------------------------------
/                                                                          
athrho                      0.874***                                       
                           (8.62)                                          
lnsigma                     1.793***                                       
                          (64.95)                                          
---------------------------------------------------------------------------
/mills                                                                     
lambda                                   4.002***                          
                                        (6.60)                             
---------------------------------------------------------------------------
N               1343         2000         2000         2000         1343   
adj. R-sq      0.252                                               0.278   
pseudo R~q                                            0.189                
---------------------------------------------------------------------------
t statistics in parentheses
* p<0.05, ** p<0.01, *** p<0.001

. vif  //方差膨胀因子
    Variable |       VIF       1/VIF  
-------------+----------------------
         imr |      1.39    0.719868
         age |      1.31    0.764000
   education |      1.10    0.906166
-------------+----------------------
    Mean VIF |      1.27

关于选择模型 all-in-one 和 step-by-step 两种方法差别,参考 Heckman Two-Step Model 和 Stata commands to do Heckman two steps。关于选择模型第一阶段是否要包含第二阶段全部外生解释变量,请参考 工具变量法(五): 为何第一阶段回归应包括所有外生解释变量,值得注意的是,选择模型中 heckman两阶段的stata命令 是一种非线性,因此不包含第二阶段全部外生解释变量引起的内生性问题可能并没有工具变量法那么严重。

4. 选择模型使用建议

  • 选择模型要有排他性约束变量,即在第一阶段回归中包含,而在第二阶段回归中排除。
  • 选择模型要报告第一阶段回归结果,否则不清楚哪个变量是排他性约束变量或评估排他性约束变量的解释能力。
  • 需要证明为什么排他性约束变量,即 heckman两阶段的stata命令 变量,可以从第二阶段回归中有效排除。
  • 由于选择模型是脆弱的,敏感性分析是必要的,如与不同排他性约束变量结果和OLS 结果对比、以及报告内生性变量和逆米尔斯比率的 VIF 值。
  • 在使用过程中,可以综合借鉴 Lennox and Francis(2012)1,Kim and Zhang(2016)2,李小荣和刘行 (2012)3

虽然有人在运用该方法时,在第一步没有选择排他性变量,但一般模型的运用是需要一个工具变量问题。因为在前面我们也讲过,如果不加入会存在共线性问题,估计也存在偏误。
工具变量的选择需要很多的思考。我看到之前有很多人用变量密度或者区域经济变量均值作为工具变量。在选择工具变量的时候,我们需要解释一下为何选择要有具有的支撑。
以李小荣和刘行(2012)高管性别与股价崩盘风险的研究为例。第一阶段回归Probit模型(女性高管=1),模型中加入影响女性高管选择的因素和排除性约束变量。排除性约束变量为同年同行业中其他公司的女性CEO比例,由于已有文献证明同年同行业中其他公司的女性CEO比例影响本公司CEO性别选择;同年同行业中其他公司女性CEO的比例对本公司的股价崩盘风险无直接影响。

在第一阶段中,因变量为0-1哑变量,所以第一阶段一般都是运用Probit分析模型。此外,在第二阶段分析中,当引入IMR予以控制后,选择偏误调整项IMR系数如果通过显著性检验,这表明虚拟变量选择的内生性偏误一定程度是存在的,这表明采取文章分析样本自选择问题是必要的,这将进一步提升文章研究结论的稳健性。

将IMR放入第二阶段可能会造成多重共线问题,因此需要在回归结果中报告VIFs(Variance Inflaction Factors)。通常认为VIFs值超过10,即存在多重共线问题。

需要注意的是,方法一中Heckman直接命令代码的运用具有明显的局限性,这里的因变量一般要求为“连续性变量”,而当因变量为哑变量(0-1)或其他非连续性变量时,上述方法一的直接运用将存在明显的统计偏误。为此,当在实证研究过程中,遇到因变量为非连续性变量时,方法一不再适用,可借鉴方法二,将Heckman二阶段分析进行拆分。

多数论文使用两步法省略了报告第一阶段。有必要明确报告第一阶段模型使用了哪些变量,以便清楚地识别排除性约束变量。第二阶段的回归模型中,除排除性约束变量外,需加入第一阶段模型的所有控制变量。

在使用过程中,可以综合借鉴和学习如下这三篇文章。
Lennox C S, Francis J R, Wang Z. Selection models in accounting research[J]. The accounting review, 2012, 87(2): 589-616.
Kim C, Zhang L. Corporate political connections and tax aggressiveness[J]. Contemporary Accounting Research, 2016, 33(1): 78-114.
李小荣, 刘行. CEO vs CFO: 性别与股价崩盘风险[J]. 世界经济, 2012, 12: 102-129.

 

上一篇:DP动态规划(入门,以滑雪为例)


下一篇:详细介绍Python函数中的默认参数