样本选择模型——Heckman两步法

样本选择模型——Heckman两步法

1. 内生性来源——样本选择偏差

在内生性的问题中,而对于选择导致结果估计不一致的偏差可以分为两种情况:(1)样本自选择偏差;(2)样本选择偏差。导致偏差的关键的在于两者非随机的选择机制是不同的:非随机选择机制的不同是两者最大的区别,体现在具体回归方程中就是,前者指的是由于哑元解释变量 的取值是非随机的而导致的偏差;后者指的是被解释变量 是否被观测到或是否取值(而非取值大小)是非随机的从而造成的偏差。

样本选择偏差:指的是样本抽取的时候选择不随机所导致的偏差。因为当我们在样本抽样的时候,没有做到样本抽取的随机性,仅仅支队某部分的人群进行调查,使得这部分群体于其他群体在某些方面的特征差异很大而导致最终不随机样本回归得不到稳健可信的结论。可以这么理解为幸存者偏差,举一个例子:

我们想要调研感染omicron这种病毒后的重症率是多大?在网络上发布一个问卷进行调研,发现大部分人感染了omicron后几乎都是较轻的症状,得出结果是:omicron的重症率很低

但是这个例子中关于调研样本的抽取是存在问题,感染了omicron的人如果有重症大部分都是老人或者小孩,他们都不具有上网填写调查问卷的条件,另外当处于重症的情况下也不会有心思去填问卷(好好养病吧,别看手机了),所以最终能够填写调查问卷的都是些身强力壮的年轻人或者是感染后症状较轻的人。体现在我们所采集的数据集中就是数据集中仅仅只覆盖了某部分特定的人群样本(假设轻症可以填问卷,重症病的填不了),就会导致其他群体的数据缺失,在这种情况下进行回归,都将会直接忽视掉其他群体的样本信息。实质上,样本选择偏差说的就是参与回归的样本不能代表总体从而产生估计偏误的问题。或许就是我们常说的幸存者偏差。

2. Heckman两步法基本原理

对于这种造成偏误的情况,我们可以利用赫克曼矫正法(Heckman Correction,又称两阶段方法)来解决由于样本选择偏差造成的内生性问题,通过两阶段步骤来完成:

第一步骤:建立一个 Probit 模型估计是否能够观察到被解释变量的概率,而该模型的统计估计结果可以用来预测每个个体的概率;

第二步骤:将这些被预测个体概率合并为一个额外的解释变量,与其他控制变量等变量一起来矫正自选择问题。

第二个步骤所提及到合并的额外的解释变量是一个比率,称为逆米尔斯比率(inverse Mills ration, ),也就是说:先在第一步计算出 ,在第二步把 当作一个控制变量加入到原回归中。

例子:在管理学领域,一个典型的问题是企业的某个特征,或者 CEO 的个体特征,对于企业 R&D 投入的影响。在调研抽样过程中也是存在一个样本选择偏差问题:企业的 R&D 投入是企业自愿披露的内容,有的企业不披露,此时做回归时就不能包括这部分缺失的样本(没有披露 R&D 的公司无法观测到他们的 R&D 投入),造成样本选择偏差,结果有偏。这里假设全样本是 1000 家公司,其中 800 家公司披露了其 R&D 投入,即是模型中存在部分 R&D 投入无法观测到的公司样本没有纳入回归,可能会造成由于样本选择偏差而导致的内生性问题从而使得估计结果不一致。接下来采用 Heckman法 来解决这个问题:

  • 第一阶段:采用一个包括全样本(1000家)的 Probit 模型,用来估计一家公司是否会披露其 R&D 投入的概率。这里的因变量是二元的,表示是否披露 R&D 投入;自变量是一些会影响是否披露 R&D 的外生变量,比如其他收入营业收入,杠杆率,公司规模,所属行业等等。然后根据这个 Probit 模型,为每一个样本计算出 作用是为每一个样本计算出一个用于修正样本选择偏差的值。(具体怎么计算 后面会推导)

  • 第二阶段:在原来的回归方程,也就是原来只有 800 家公司的样本的方程假如加入 作为控制变量,其他都不变,然后估计出回归参数。这时 的显著性和系数表明了样本选择偏差是否存在以及偏差的方向,如果 是显著,则可以说明样本选择偏差的确影响了你最初模型的估计,这种情况下正好表明了使用 Heckman 两步法纠正样本选择偏差的必要性和接下来需要对样本进行纠正。如果 不显著,说明原模型不存在严重的样本选择偏差,这时 Heckman 第二步得到的结果理论上应该与原模型得到的结果差不多(需要比对一下)。第二步关注的对象是核心解释变量是否显著。只要核心解释变量显著,就说明结果稳健。

因此,我们可以这样简单理解样本选择模型的估计思路:首先,计算全部样本的 ;随后,将遗漏变量 代入原回归方程中。本质上,样本选择偏差其实是一个因遗漏变量而导致内生性的特例,而回归方程中被遗漏的变量(样本选择偏差部分)就是逆米尔斯比率,也被称为风险函数(Hazard Function),逆米尔斯比率的计算公式: 其中, 是第 个样本在第一步回归(选择方程)的拟合值, 是指标准正态的概率密度函数,而 指的是累积分布函数。

3. Heckman两步法步骤理解

上面提及到,其实可以这么理解为:由于样本选择偏差导致的内生性问题本质其实就是遗漏变量的一种特例,这个时候我们要纠正这种偏差,就需要去找到这个缺失的偏差项加入到原回归方程中进行纠正。具体来说就是:

  • 第一步:首先采用 probit 方法去估计选择方程,其中原回归方程的被解释变量 是否被观测到或是否取值的虚拟变量 作为 probit 的被解释变量,解释变量包括原回归方程所有解释变量和至少一个外生变量,该外生变量只影响是 否取值,而不影响 的大小,即满足相关性和外生性的要求(但不是工具变量)。估计出所有变量的系数后,将样本数据代入至probit 模型中,计算出拟合值 ,再将 代入风险函数公式(1)中计算出
  • 第二步 :将第一步回归计算得到的 作为控制变量引入原回归方程中。如果 显著,说明原回归中存在样本选择偏差,需要使用样本选择模型进行缓解,而其余变量的回归系数则是缓解样本选择偏差后更为稳健的结果;如果 不显著,说明原回归存在的样本选择偏差问题不是很严重,不需要使用样本选择模型,当然,使用了也没关系,因为引入控制变量的回归结果可以与原回归结果比较,作为一种形式的稳健性检验。

4. stata语法介绍

stata 中关于样本选择模型采用的命令是 heckman,这个命令可以实现 heckman两步估计以及模型整体参数的极大似然估计

Basic syntax
1.两步估计法
heckman y x1 x2, select(x1 x2 z1) twostep mills(newname)
or等价于
heckman y x1 x2, select(y_dummy = x1 x2 z1) twostep
----------------------------------------------------------------------------
2.MLE
heckman y x1 x2, select(y_dummy = x1 x2 z1) nolog robust/cluster SE

      heckman y x1 x2, select(y_dummy = x1 x2 z1) nolog vce(cluster varname)

样本选择模型采用 Heckman 两步法的stata语法大致包括两部分,选择项 select 之前的是第二阶段回归的被解释变量 和控制变量 ,这里不需要自己手动加入 。而选择项 select 以后指的是对选择方程的具体设置:

  • select() 代表选择方程,括号中的是选择方程的具体变量,有两种写法:(看看上面关于 Heckman 的 Syntax)
    • 第一种写法:直接写入控制变量 和外生变量 。此时要求原回归的被解释变量 存在缺失值,这种写法程序会自动识别那些原方程中被解释变量是否是缺失值并且对应生成虚拟变量;
    • 第二种写法:首先写入被解释变量 是否被观测到的虚拟变量 存在缺失值的样本 标记为 0,不存在缺失值的样本标记为 1,且 取值为 0 不作为缺失值处理)作为选择方程的被解释变量, 等号后面跟着控制变量和外生变量。这种写法需要提前生成 的虚拟变量。
  • twostep 表示使用两步估计法,程序默认使用 MLE
  • mill() 表示生成各个样本的 ,并且以 newname 作为变量名
  • nolog 表示在使用 MLE 时回归结果不显示迭代过程
  • vce() 表示使用稳健标准误,括号中写入 robust 表示使用的是异方差稳健标准误;若填入 cluster varname 表示使用聚类稳健标准误,以 varname 作为聚类标准,一般以经验法则,我们都是要求聚类数目要大于 30 作为聚类的标准,另外 vce() 不可以在两步法中使用

5. Heckit 案例操作

  • 导入数据集
webuse womenwk,clear
*定义全局暂元
global xlist "educ age"
global zlist "married children"
/*
被解释变量: wage
解释变量:educ age
外生解释变量:married children

因为样本数据集中的 wage 存在缺失值,所以当我们直接使用 OLS 进行回归的时候可能存在样本选择偏差,因为当使用该数据集的时候因该用样本选择模型 Heckman 两步法进行进一步的稳健性检验。

  • 数据处理
tabulate county

  County of |
  residence |      Freq.     Percent        Cum.
------------+-----------------------------------
          0 |        200       10.00       10.00
          1 |        200       10.00       20.00
          2 |        200       10.00       30.00
          3 |        200       10.00       40.00
          4 |        200       10.00       50.00
          5 |        200       10.00       60.00
          6 |        200       10.00       70.00
          7 |        200       10.00       80.00
          8 |        200       10.00       90.00
          9 |        200       10.00      100.00
------------+-----------------------------------
      Total |      2,000      100.00

该数据集为截面数据,因此标准误无法聚类到个体层面,而同一地区的个体特征可能存在一定的相关性,因此将标准误聚类到county层面,上述结果可以看到,地区数目只有10个,远无法满足聚类数目最低值(30个)的要求,因此选用异方差稳健标准误。

  • 查看 的缺失情况和生成虚拟变量

根据 wage 是否存在缺失值生成虚拟变量 wage_dummy 。可以看到,2000个样本中,wage 数据缺失的有657个。并且根据被解释变量是否存在缺失值对应生成虚拟变量

nmissing wage

wage              657

gen wage_dummy=(wage !=.)
  • 第一个回归:基准回归
reg wage $xlist
est store OLS

      Source |       SS           df       MS      Number of obs   =     1,343
-------------+----------------------------------   F(2, 1340)      =    227.49
       Model |  13524.0337         2  6762.01687   Prob > F        =    0.0000
    Residual |  39830.8609     1,340  29.7245231   R-squared       =    0.2535
-------------+----------------------------------   Adj R-squared   =    0.2524
       Total |  53354.8946     1,342  39.7577456   Root MSE        =     5.452

------------------------------------------------------------------------------
        wage | Coefficient  Std. err.      t    P>|t|     [95% conf. interval]
-------------+----------------------------------------------------------------
   education |   .8965829   .0498061    18.00   0.000     .7988765    .9942893
         age |   .1465739   .0187135     7.83   0.000      .109863    .1832848
       _cons |   6.084875   .8896182     6.84   0.000     4.339679    7.830071
------------------------------------------------------------------------------

上述第一个回归中,基准回归的结果显示,参与回归的样本数量为1343个,即wage 存在缺失值的样本(657个)在回归时直接被 drop 掉。基准回归中两个解释变量的系数均显著为正,模型拟合程度也较好

  • 第二个回归:样本选择模型,使用 MLE 方法进行估计
    • lambda 指的是 的估计系数,该值等于 rhosigma 的乘积
    • sigma 是原方程干扰项的标准差
    • rho 是选择方程干扰项和第二阶段回归干扰项的相关系数。如果 rho = 0 ,表示第二阶段回归中 的系数不显著,说明样本选择偏差在原方程中不怎么严重,反之则需要考虑样本选择偏差带来的估计偏误。回归结果的末尾是 LR 检验,检验的原假设是 H0: rho = 0,p 值说明至少可以在 1% 的水平下拒绝原假设,可以认为 rho 显著不等于0,这说明原模型中确实存在严重的样本选择偏差,基准回归结果不可信。
heckman wage $xlist , select(wage_dummy= $xlist $zlist) nolog mills(imr1)
est store MLE

Heckman selection model                         Number of obs     =      2,000
(regression model with sample selection)              Selected    =      1,343
                                                      Nonselected =        657

                                                Wald chi2(2)      =     508.44
Log likelihood = -5178.304                      Prob > chi2       =     0.0000

------------------------------------------------------------------------------
             | Coefficient  Std. err.      z    P>|z|     [95% conf. interval]
-------------+----------------------------------------------------------------
wage         |
   education |   .9899537   .0532565    18.59   0.000     .8855729    1.094334
         age |   .2131294   .0206031    10.34   0.000     .1727481    .2535108
       _cons |   .4857752   1.077037     0.45   0.652    -1.625179     2.59673
-------------+----------------------------------------------------------------
wage_dummy   |
   education |   .0557318   .0107349     5.19   0.000     .0346917    .0767718
         age |   .0365098   .0041533     8.79   0.000     .0283694    .0446502
     married |   .4451721   .0673954     6.61   0.000     .3130794    .5772647
    children |   .4387068   .0277828    15.79   0.000     .3842534    .4931601
       _cons |  -2.491015   .1893402   -13.16   0.000    -2.862115   -2.119915
-------------+----------------------------------------------------------------
     /athrho |   .8742086   .1014225     8.62   0.000     .6754241    1.072993
    /lnsigma |   1.792559    .027598    64.95   0.000     1.738468     1.84665
-------------+----------------------------------------------------------------
         rho |   .7035061   .0512264                      .5885365    .7905862
       sigma |   6.004797   .1657202                       5.68862    6.338548
      lambda |   4.224412   .3992265                      3.441942    5.006881
------------------------------------------------------------------------------
LR test of indep. eqns. (rho = 0): chi2(1) = 61.20        Prob > chi2 = 0.0000

首先,根据上述的回归结果可以看到,选择方程中两个外生变量都是显著为正,说明了外生变量的选择是有效的(第二行 wage_dummy 作为被解释变量的表格)。在第二阶段回归结果中,两个解释变量仍然是显著为正的,且相较于基准回归结果取值变化不是很大,说明在考虑样本选择偏差后的基准回归结果依旧是稳健的。 对应的 lambda 的估计系数是 4.2244 ,程序汇报表格最后的是 LR 检验,检验的原假设是 H0: rho = 0,p 值说明至少可以在 1% 的水平下拒绝原假设,可以认为 rho 显著不等于0,这说明原模型中确实存在严重的样本选择偏差,基准回归结果不可信。

第二阶段回归结果中,两个解释变量仍旧显著为正,且相较于基准回归结果取值变化不大,说明考虑到样本选择偏差后基准回归结果依然是稳健的。

回归结果右上角说明总的样本量是 2000 个,参与选择方程回归的样本为 2000 个,参与第二阶段回归的样本为 1343 个。这里是因为第一阶段回归的被解释变量是第二阶段被解释变量是否是缺失值的虚拟变量,所以第一阶段是全样本进行 Probit 回归的,但是第二阶段在把缺失项(逆米尔斯比率项)加入进行回归时,是不需要考虑缺失的样本数据的,因为缺失的样本数据已经在第一部分计算进入了逆米尔斯比率项中,所以第二阶段回归中只有 1343 个样本。

  • 第三个回归:样本选择模型,使用 MLE 方法进行估计+异方差稳健标准误
heckman wage $xlist , select(wage_dummy=$xlist $zlist) nolog vce(robust)
est store MLE_r


Heckman selection model                         Number of obs     =      2,000
(regression model with sample selection)              Selected    =      1,343
                                                      Nonselected =        657

                                                Wald chi2(2)      =     497.82
Log pseudolikelihood = -5178.304                Prob > chi2       =     0.0000

------------------------------------------------------------------------------
             |               Robust
             | Coefficient  std. err.      z    P>|z|     [95% conf. interval]
-------------+----------------------------------------------------------------
wage         |
   education |   .9899537   .0534141    18.53   0.000     .8852641    1.094643
         age |   .2131294   .0211095    10.10   0.000     .1717555    .2545034
       _cons |   .4857752   1.099121     0.44   0.659    -1.668462    2.640013
-------------+----------------------------------------------------------------
wage_dummy   |
   education |   .0557318   .0108899     5.12   0.000      .034388    .0770755
         age |   .0365098   .0042243     8.64   0.000     .0282303    .0447893
     married |   .4451721   .0668243     6.66   0.000     .3141988    .5761453
    children |   .4387068   .0272779    16.08   0.000      .385243    .4921705
       _cons |  -2.491015   .1884227   -13.22   0.000    -2.860317   -2.121713
-------------+----------------------------------------------------------------
     /athrho |   .8742086   .1051331     8.32   0.000     .6681514    1.080266
    /lnsigma |   1.792559   .0288316    62.17   0.000      1.73605    1.849068
-------------+----------------------------------------------------------------
         rho |   .7035061   .0531006                      .5837626    .7932976
       sigma |   6.004797   .1731281                      5.674882    6.353893
      lambda |   4.224412   .4172197                      3.406676    5.042147
------------------------------------------------------------------------------
Wald test of indep. eqns. (rho = 0): chi2(1) = 69.14      Prob > chi2 = 0.0000

上述结果显示在使用稳健标准误的回归结果与上文使用普通标准误的回归结果基本保持一致。需要注意的是,在使用稳健标准误后,对 H0: rho = 0的统计检验将变成 Wald 检验,这里 Wald 检验同样拒绝原假设。

  • 第四个回归:样本选择模型,使用两步法进行估计
heckman wage $xlist , select(wage_dummy=$xlist $zlist) twostep mills(imr2)
est store twostep


Heckman selection model -- two-step estimates   Number of obs     =      2,000
(regression model with sample selection)              Selected    =      1,343
                                                      Nonselected =        657

                                                Wald chi2(2)      =     442.54
                                                Prob > chi2       =     0.0000

------------------------------------------------------------------------------
             | Coefficient  Std. err.      z    P>|z|     [95% conf. interval]
-------------+----------------------------------------------------------------
wage         |
   education |   .9825259   .0538821    18.23   0.000     .8769189    1.088133
         age |   .2118695   .0220511     9.61   0.000     .1686502    .2550888
       _cons |   .7340391   1.248331     0.59   0.557    -1.712645    3.180723
-------------+----------------------------------------------------------------
wage_dummy   |
   education |   .0583645   .0109742     5.32   0.000     .0368555    .0798735
         age |   .0347211   .0042293     8.21   0.000     .0264318    .0430105
     married |   .4308575    .074208     5.81   0.000     .2854125    .5763025
    children |   .4473249   .0287417    15.56   0.000     .3909922    .5036576
       _cons |  -2.467365   .1925635   -12.81   0.000    -2.844782   -2.089948
-------------+----------------------------------------------------------------
/mills       |
      lambda |   4.001615   .6065388     6.60   0.000     2.812821     5.19041
-------------+----------------------------------------------------------------
         rho |    0.67284
       sigma |  5.9473529
------------------------------------------------------------------------------

上述汇报结果显示选择方程引入的外生解释变量是显著的,说明该外生解释变量是有效的,另外原方程回归中的解释变量也是显著的。在第二阶段中, 的回归系数等于 4.0016,与 MLE 方法下的 4.2244 相差不大,但两步法下 回归系数可以直接进行 z 检验,并且汇报的统计结果说明 回归系数至少在 1% 的水平下显著为正,这同时说明原方程中的样本选择偏差问题是显著存在的,并且需要进行样本选择偏差的纠正。

第二阶段回归结果中,两个解释变量仍旧显著为正,且大小与基准回归结果相比变化不大,这说明在考虑样本选择偏差的情况下,基准回归结果是可信的。

  • 第五个回归:手工完成两步估计法

手工计算两步估计法是不推荐的,因为两步估计法下第一步回归的估计误差会带到第二步,造成效率损失,影响第二步估计系数的显著性。

手工两步估计法的思路是先用控制变量和外生变量对 wage_dummy 做 probit 回归,计算出拟合值 ,然后根据 计算出全部样本的 ,最后将 作为额外的控制变量引入基准回归方程中做进一步的回归。

*- 第一阶段方程回归(选择方程)
probit wage_dummy $xlist $zlist , nolog 
est store first



Probit regression                                       Number of obs =  2,000
                                                        LR chi2(4)    = 478.32
                                                        Prob > chi2   = 0.0000
Log likelihood = -1027.0616                             Pseudo R2     = 0.1889

------------------------------------------------------------------------------
  wage_dummy | Coefficient  Std. err.      z    P>|z|     [95% conf. interval]
-------------+----------------------------------------------------------------
   education |   .0583645   .0109742     5.32   0.000     .0368555    .0798735
         age |   .0347211   .0042293     8.21   0.000     .0264318    .0430105
     married |   .4308575    .074208     5.81   0.000     .2854125    .5763025
    children |   .4473249   .0287417    15.56   0.000     .3909922    .5036576
       _cons |  -2.467365   .1925635   -12.81   0.000    -2.844782   -2.089948
------------------------------------------------------------------------------

上面说了在第一阶段选择方程回归的样本数量是 2000 个的原因,上述手工回归的第一阶段 probit 回归中,控制变量和外生解释变量都是显著为生,说明外生解释变量的选定是有效的。

接着根据拟合值 计算出额外的控制变量 。其中,normalden() 是标准正态的概率密度函数 pdfnormal() 是标准正态的累积分布函数 cdf

*计算imr值

predict y_hat, xb
gen imr=normalden(y_hat)/normal(y_hat)

在上面计算各个样本的 值后,就可以加入到第二阶段回归中:与样本选择模型的两步估计法结果相比,手工两步法估计结果在系数值大小方面没有任何改变,在系数标准误方面变化也不大,从而各个变量的系数显著性保持高度一致。这提示我们,两步估计法(包括手工两步法)带来的效率损失不可忽视,虽然本例中的结果和MLE以及基准回归基本保持一致,实际使用应尽量避免使用这种方法,除非能够找到比较好的方法来校正误差。

*- 第二阶段方程回归
reg wage $xlist imr
est store second

      Source |       SS           df       MS      Number of obs   =     1,343
-------------+----------------------------------   F(3, 1339)      =    173.15
       Model |  14913.1368         3  4971.04559   Prob > F        =    0.0000
    Residual |  38441.7579     1,339  28.7093039   R-squared       =    0.2795
-------------+----------------------------------   Adj R-squared   =    0.2779
       Total |  53354.8946     1,342  39.7577456   Root MSE        =    5.3581

------------------------------------------------------------------------------
        wage | Coefficient  Std. err.      t    P>|t|     [95% conf. interval]
-------------+----------------------------------------------------------------
   education |   .9812232   .0504379    19.45   0.000     .8822772    1.080169
         age |   .2167985   .0209799    10.33   0.000     .1756415    .2579555
        imr1 |   4.079591   .5864901     6.96   0.000     2.929051     5.23013
       _cons |   .5372467   1.183409     0.45   0.650    -1.784291    2.858785
------------------------------------------------------------------------------
  • 比对各个方法计算的
*- 对比imr、imr1和imr2

order imr1 imr2 imr wage_dummy     //排序

所有样本的IMR均有取值。 保持高度一致( 四舍五入了),因为两者都是用两步估计法计算出来的。 存在差距,但差别不大。

  • 对比五个模型的回归结果
local   mlist "OLS MLE MLE_r twostep first second"
esttab `mlist' using 样本选择模型.rtf, replace                               ///
               b(%6.4f) t(%6.4f)                                             ///
               scalar(N r2_a r2_p) compress nogap                            ///
               star(* 0.1 ** 0.05 *** 0.01)                                  ///
               mtitle(`mlist')                                               ///
               title("Sample Selection Model")
image-20230111093440318

通过上述五个模型回归的结果分析,可以发现以下结论:

  1. 两个解释变量(educationage)的回归系数的符号、大小、显著性在模型(2)(3)(4)(6)中基本保持一致,并且与模型(1)(基准回归)的区别不大,这说明在考虑到样本选择偏差后,根据基本回归结果得出的结论依然成立。
  2. 模型(2)(3)(4)汇报的样本量是2,000个全样本,但应该清楚不同回归阶段实际参与的样本数目是不同的。

以上命令、代码和实例均基于截面数据,现阶段的文献大多数也是将面板数据转为截面数据处理,最多控制几个个体虚拟变量和时间虚拟变量,并将其视为面板数据回归。

  • 估计面板数据的stata命令

Stata在16及以上版本中提供了估计面板数据样本选择模型官方命令xtheckman,但这个命令只能估计随机效应模型,估计固定效应模型需安装一个外部命令 xtheckmanfe,可以键入如下代码进行安装或更新。

ssc install xtheckmanfe, replace

6. 论文案例

依旧会采用中国工业经济的论文案例来说明,Heckman两步法在一篇论文中的位置

郭玥.政府创新补助的信号传递机制与企业创新[J].中国工业经济,2018(09):98-116.DOI:10.19581/j.cnki.ciejournal.2018.09.016.

在稳健性检验中,未来避免由于信息缺漏而造成估计的偏误,对于年报中明确报告研发经费项目无或者为零的企业,研发投入变量赋值为0,而未披露研发经费支出项目的企业,研发投入变量按缺漏值处理,这样选取研发投入作为被解释变量意味着自动忽略了那些没有研发行为的样本,这种非随机的样本选择会导致最终的估计有偏。于是这篇论文是考虑到具有研发行为的企业会有申请创新补助的动机,是否有研发行为和是否申请创新补助在决策上具有一致性。

为解决样本选择偏误问题,论文采用 Heckman 两步法,具体的回归模型如下:

image-20230111095702145

方程(14)是一个probit模型用于估计 的,也就是上面说的选择方程,最终通过 的cdf和pdf计算 。方程(15)是将方程(14)计算出来的 带入到原回归方程中进行估计,并且在这种情况下尽量剔除了由于样本选择偏差造成的内生性问题。

global x       "rdsubsidy nrdsubsidy"   //全局暂元定义核心解释变量
global control "size age lev fasset growth holderr1 bsmsalary market"  //全局暂元定义控制变量
global select  "select(rdsubsidy_dum = lsubsidy llnptinf $control _Iy* _a* _h*) twostep" //全局暂元定义选择方程和确定两步估计法,_Iy* _a* _h*固定效应

*原基准回归,没有考虑样本选择偏差的内生性问题
qui xtreg rd1      $x $control _Iy*, fe r
est store rd1_OLS

*利用heckman两步法回归,考虑了样本选择偏差问题
qui heckman rd1      $x $control _Iy* _a* _h*, $select
est store rd1_Heckman
 
local mm "rd1_OLS rd1_Heckman"
esttab `mm', mtitle(`mm') compress nogap star(* 0.1 ** 0.05 *** 0.01) b(%12.4f) t(%12.4f) drop(_I* _a* _h* $control _cons)  

/*结果汇报:

------------------------------------
                 (1)          (2)   
             rd1_OLS    rd1_Hec~n   
------------------------------------
main                                
rdsubsidy     0.1932***    0.7195***
            (4.9457)    (21.6573)   
nrdsubsidy    0.0652**     0.1896***
            (2.3337)     (6.0854)   
------------------------------------
rdsubsid~m                          
lsubsidy                   0.0894***
                         (4.7023)   
llnptinf                   0.1779***
                        (21.7316)   
------------------------------------
/mills                              
lambda                    -1.7654***
                        (-14.0452)   
------------------------------------
N              11835        12125   
------------------------------------*/

从汇报的结果显示,lambda 值是显著为负,说明原来的基准回归是存在把不可忽视的样本选择偏差问题,利用heckman两步法进行回归后发现,处理后的列(2)的回归系数 0.7195 要远大于原基准回归的列(1) 的 0.1932。