研究中学习【方法】 | Heckman二值选择模型

由于研究生的课题研究需要,接触到heckman模型,但一直是一知半解。阅读了heckman模型相关的文章,归纳总结一份学习笔记,能够帮助同时有这个学习需要的朋友,也方便后续回顾查看。下文将包含heckman模型的缘起、要解决的问题、应用规范等等方面内容。

参考文章:

  1. Heckman 两阶段法及与工具变量法的区别
  2. Heckman 模型:你用对了吗? - 知乎 (zhihu.com)
  3. 学习笔记 | Heckman两阶段法介绍_Claire_chen_jia的博客
  4. 【微信公众号】Heckman两步法 | 样本选择模型 & 处理效应模型

heckman模型缘起

参考:Heckman 两阶段法及与工具变量法的区别

Heckman两阶段模型适用于解决由样本选择偏差(sample selection bias)造成的内生性问题。

注:若非因为样本选择不随机,而是因为变量选择不随机导致的内生性,应该使用处理效应模型,本篇不涉及后者。具体可见第4篇参考文章。

在经济学领域,样本选择偏差的典型例子是研究女性的受教育情况对女性工资的影响。按照这个思路,一般会去问卷收集或在哪个网站下载部分女性的受教育情况,工资,及其他特征数据,例如年龄,毕业院校等级等个人特征,然后做回归。不过这样做有一个问题,就是登记的女性,都是在工作的,但是许多受教育程度较高的女性不工作,选择做家庭主妇,这部分样本就没有算在内,样本失去随机性。这就导致模型只是用到了在工作的女性,这样得出的结论是有偏差的。

陈云松的文章《在线沟通对青年人际关系的影响》当中,就提到了heckman选择模型的适用场景,即应对样本选择偏差的问题。如果不进行处理,选取的样本即是那些由上网经验的,而剔除了没有上网经验的(或者是线上沟通时长为零的群体),又由于是否上网并不是随机分布的,所以可能在应用模型时会出现内生性偏差。

A.是否上网 {0  1}  >  B.上网是否经常 {0  1}

上方数据呈现了二阶的递进关系,同理可得:

志愿服务>老年志愿服务,如果只探讨老年志愿服务为因变量可能会存在内生性偏差,不参与老年志愿服务,不代表其不参与志愿服务,可能参与的是其他志愿服务活动。

Stata 应用实例

参考:如何更好地掌握Heckman 二阶段分析模型? - 知乎 (zhihu.com)

1、方法一(最大似然估计)

*连续变量时:heckman y x 控制变量,select(z变量 控制变量 x)
heckman wage educ age,select(married children educ age)
*0-1变量时:heckpro y 控制变量 x,select(z变量 控制变量 x)
heckprobit laonian1 gender age marriage party religion chengxiang edu lnincome ses,select(z变量 gender age  marriage party religion chengxiang edu lnincome ses)

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

2、方法二(两步法)

先在第一阶段中计算出除逆米尔斯比率IMR,再在第二阶段中将逆米尔斯比率imr作为控制变量,予以考察。基本步骤如下:

步骤1: 通过运用probit模型计算影响所考察变量的哑变量(0-1)的影响因素(即“第一阶段”),

步骤2: 在上述一步基础上,计算预测:predict y,xb,

步骤3: 再次,计算生成:gen IMR=normalden(w)/normal(w),

步骤4: 最后,将所生成的逆米尔斯比率IMR引入主要考察模型,并予以控制(即“第二阶段”)。

或者,将Heckman两步法解读为:

第一阶段,建立Probit选择模型。用以估计存在选择偏差变量发生的可能性,并计算逆米尔斯比率(Inverse Mills Ratio,简称IMR)。IMR的作用是为每一个样本计算出一个用于修正样本选择偏差的值。

第二阶段,利用选择性样本观测值,将第一阶段估计的IMR与其他变量一起放入第二阶段的回归模型中。自选择问题已经通过第一阶段的选择模型得以修正,并在第二阶段由IMR反映出来。*如果IMR显著,说明原回归中存在样本选择偏差,需要使用样本选择模型进行缓解,而其余变量的回归系数则是缓解样本选择偏差后更为稳健的结果;如果IMR不显著,说明原回归存在的样本选择偏差问题不是很严重,不需要使用样本选择模型,当然,使用了也没关系,因为引入控制变量的回归结果可以与原回归结果比较,作为一种形式的稳健性检验。

 外生变量的选择问题

Z变量,也被称为排他性约束变量 (exclusion restrictions)、工具变量,区别于内生变量(自变量) 。需要满足两点:1.与自变量呈强相关性;2.与因变量相互独立。

Z变量如何选取,可参考下方研究实例:

  1. 陈云松《在线沟通对青年人际关系的影响》

    自变量:收发电子邮件、聊天交友、使用微博/博客的频率   

    因变量:人际交往满意度

    Z变量:需要寻找一个与上网关系密切而且独立于人际关系的变量作为工具变量进行估计,本研究选用的工具变量为“看报纸、杂志”的频率。作为一种文化惯习,该变量影响着互联网的应用,同时不直接影响人际关系。

  2. 陈云松《农民工收入与村庄网络——基于多重模型识别策略的因果效应分析》

        自变量:社会网络(外出打工人数) 

        因变量:农民工收入。

Z变量:村庄的自然灾害则是一个很好的工具变量,跟因变量这些劳动力市场没有直接关系,但却非常有可能影响自变量,外出打工的人数。

研究中学习【方法】 | Heckman二值选择模型_第1张图片

 初步选择--->       

       自变量:个人资本   

       因变量:志愿服务参与、老年志愿服务参与

       Z变量:应该与个人资本量密切相关,但又需要与因变量独立。

  1. 地区经济?经济发展越好的省份,居民的资本量可能越高,但对于志愿服务参与应该是无关的。(好像不是,之前出来的数据结果表明是正相关的。)
  2. 城镇化率?之前数据出来是无关的,但是需要引用别人的文献来确认z对于自变量是有强相关的。

确定z变量的必要性

由于选择模型是脆弱的,敏感性分析是必要的,如与不同排他性约束变量结果和OLS 结果对比、以及报告内生性变量和逆米尔斯比率的 VIF 值。

1.多模型比对

陈云松使用的就是第二种方法,在probit work...之后验证,如果z变量与因变量是正相关的,说明这个z变量的选择是有意义的。

2.vif值:多重共线性VIF_Lemon_ZL的博客-CSDN博客_vif值判断多重共线性

vif如果过高,就说明多元回归模型中的变量之间存在明显的共线性,a变量与b变量有线性关系。

研究中学习【方法】 | Heckman二值选择模型_第2张图片

*数据来源: https://gitee.com/arlionn/data/blob/master/data01/womenwk.dta
use womenwk.dta, clear   
*因变量:wage(工资) 上一级的分类变量为work(是否工作)
*自变量:educ(教育) 
*控制变量:age(年龄)
*z变量:married(是否结婚) children(孩子数量)

*描述性统计数据
sum age educ married children wage 

*简单的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
————————————————
版权声明:本文为CSDN博主「Claire_chen_jia」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Claire_chen_jia/article/details/109299560

你可能感兴趣的:(学习,1024程序员节)