Stata实操陷阱:动态面板数据模型

发布时间:2020-12-07 阅读 6654

Stata连享会   主页 || 视频 || 推文 || 知乎

温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。

New! lianxh 命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh

课程详情 https://gitee.com/arlionn/Course   |   lianxh.cn

课程主页 https://gitee.com/arlionn/Course

作者:李琼琼 (山东大学)
邮箱:lqqflora@163.com


目录


1. 问题背景

关于动态面板数据模型 (dynamic panel data,DPD),我们常常会遇到如下问题:

  • 如何在一阶差分 GMM 和系统 GMM 间选择;
  • 该用 Stata 哪个命令对模型进行估计;
  • 当解释变量中含有内生变量时,应该如何对模型进行估计;
  • 干扰项序列相关检验无法通过怎么办;
  • 过度识别检验无法通过怎么办;
  • 大 T 小 N 型面板能否用 GMM 进行估计。

接下来,本文将对上述问题提出对应的解决方案。

2. FD-GMM 还是 SYS-GMM

需要强调的是,无论 一阶差分 GMM (FD-GMM) 还是系统 GMM (SYS-GMM),模型设定是不受影响的,并且二者仅在计量估计方法上不一样,即矩条件不同。SYS-GMM 使用的矩条件多,利用的信息也多,估计也更有效率,但其受到的限制也多,如假定被解释变量的一阶差分项与个体效应变量不相关。更多细节,请参考「连享会」主页专题「IV-GMM」

那么,在估计模型时该选择哪种估计方法呢?

Bond (2002) 认为当被解释变量的一阶滞后项系数 ρ 不是很大时,如 ρ<0.8,FD-GMM 估计结果较好,而当 ρ>0.8 时,SYS-GMM 较好。

此外,若对性别、户口、行业等不随时间变化变量感兴趣,则必须使用 SYS-GMM 估计。

温馨提示: 文中链接无法在微信中打开,请点击「阅读原文」

3. 关于动态面板模型估计的 Stata 命令

动态面板数据模型的估计主要有 4 个 Stata 命令,其中官方命令为 xtabondxtdpdsysxtdpd,非官方命令为 xtabond2,具体如下:

  • xtabond 用于 FD-GMM 估计;
  • xtdpdsys 用于 SYS-GMM 估计;
  • xtdpd 用于 FD-GMM 和 SYS-GMM 估计;
  • xtabond2 用于 FD-GMM 和 SYS-GMM 估计。

其中,xtabond2 可以提供由异方差调整后的 Hansen 统计量。

3.1 动态面板模型案例

接下来,我们将使用 Arellano and Bond (1991) 在研究企业雇佣员工数量的影响因素时的数据 abdata.dta,来说明 GMM 相关命令的应用。其中,模型设定如下:

  • nit,企业 i 在第 t 年末雇佣员工数量的对数值;
  • ni(t1),企业 i 在第 t1 年末雇佣员工数量的对数值;
  • (L)xit,表示解释变量 x 及其滞后项,具体包括:
    • wi,t 和 wi,t1 (即企业 i 在第 t 和 t1 年实际工资的对数);
    • ki,tki,t1 和 ki,t2 (即企业 i 在第 tt1 和 t2 年资本存量的对数);
    • ysi,tysi,t1 和 ysi,t2 (即企业 i 所在行业在第 tt1 和 t2 年总产出的对数);
  • λt 为年份虚拟变量,其含义为总需求每年受到的外部冲击,也可表示为 i.yr1979-yr1984

3.2 FD-GMM 的实现

采用 xtabond 命令 进行 FD-GMM 估计

xtabond 命令语法格式:

xtabond depvar [indepvars] [if] [in] [,options]

主要选项的含义为:

  • depvar:被解释变量;
  • indepvars:严格外生的解释变量;
  • noconstant:无常数项;
  • lags(p):表示使用被解释变量 p 阶滞后值作为解释变量,默认一阶滞后 lags(1)
  • maxldep(q):表示最多使用 q 阶被解释变量的滞后值作为工具变量,默认使用所有可能的滞后值;
  • endogenous():内生解释变量,可使用多次;
  • twostep:两阶段估计,可修正 Sargan 统计量;
  • inst():其他的工具变量 (除解释变量滞后项以外);
  • vce():默认为 vce(gmm),计算得到普通 GMM 标准误,vce(robust) 为异方差稳健稳健标准误。

xtabond 估计命令:

*数据下载地址
*https://gitee.com/arlionn/data/blob/master/data01/abdata.dta
use abdata, clear   // 调用数据
*-or
webuse abdata, clear  // 部分版本的 Stata 可能无法执行
xtabond n L(0/1).w L(0/2).(k ys) yr1980-yr1984,  ///
	  lags(2) twostep vce(robust)   // L(0/1).w 表示 w 的当期值与一阶滞后
est store Fdxtabond

采用 xtdpd 命令 进行 FD-GMM 估计

xtdpd 命令语法格式:

 xtdpd depvar [indepvars] [if] [in] , dgmmiv(varlist [...]) [options]

主要选项的含义为:

  • dgmmiv(varlist [, lagrange(flag [llag])]):指定内生的被解释变量或者内生解释变量,以及其滞后项作为差分方程的 GMM 式工具变量,默认 flag 为 2,比如 dgmmiv(y , lagrange(2 4)) 将变量的 y 的 2-4 阶滞后项作为工具变量,dgmmiv(y) 将变量的 y 的 2-n 阶滞后项作为工具变量;
  • lgmmiv(varlist [, lag(#)]):将被解释变量或者内生解释变量的一阶差分的 # 阶滞后作为水平方程的 GMM 型工具变量,默认阶数为 1;
  • iv(varlist [, nodifference]):指定外生变量的一阶差分项作为差分方程的标准型的工具变量,加上 nodifference 后作为水平方程的标准型的工具变量;
  • div(varlist):为差分方程设定额外的标准型工具变量;
  • liv(varlist):为水平方程设定额外的标准型工具变量;
  • twostepvce() 含义与 xtabond 命令相同。

xtdpd 估计命令:

xtdpd n l(1/2).n L(0/1).w L(0/2).(k ys) yr1980-yr1984, ///
      dgmmiv(n) div(L(0/1).w L(0/2).(k ys)) ///
      div(yr1980-yr1984) twostep vce(robust)
est store Fdxtdpd

采用 xtabond2 命令 进行 FD-GMM 估计

xtabond2 命令语法格式:

xtabond2 depvar varlist [if] [in]  ///
   [, gmm(varlist [, laglimits(a b) collapse)])  ///
      iv(varlist [, equation()])   ///
      nolevel nocons twostep robust
   ]

主要选项的含义为:

  • gmm():指定指定内生的被解释变量或者内生解释变量,以及其滞后项作为 GMM 式工具变量,laglimits(a b) 限定工具变量滞后的阶数,默认为 1 到 n,collapse 系统自动删减工具变量地个数;
  • iv(varlist [, equation()]):指定 IV 式工具变量,equation({diff | level | both}) 对差分方程和水平方程进行选择;
  • nolevel:表示不估计水平方程,进行 FD-GMM 估计,默认为SYS-GMM估计;
  • robust:异方差稳健标准误。

xtabond2 估计命令:

*ssc install xtabond2, replace // xtabond2 是外部命令需要下载
xtabond2 n l(1/2).n l(0/1).w l(0/2).(k ys)  yr1980-yr1984,      ///
         gmm(l.n) iv(l(0/1).w l(0/2).(k ys))  ///
         iv(yr1980-yr1984) ///
         nolevel twostep robust
est store Fdxtabond2

3.3 SYS-GMM 的实现

采用 xtdpdsys 命令进行 SYS-GMM 估计

xtdpdsys 命令语法格式:

xtdpdsys depvar [indepvars] [if] [in] [,options]

主要选项的含义为:

  • noconstant:无常数项;
  • lags(p):表示使用被解释变量 p 阶滞后值作为解释变量,默认一阶滞后;
  • maxldep(q):表示最多使用 q 阶被解释变量的滞后值作为工具变量,,默认使用所有可能的滞后值;
  • pre():指定前定变量;
  • endogenous ():指定内生解释变量,可使用多次;
  • twostepvce():与 xtabond 命令相同。

xtdpdsys 估计命令:

xtdpdsys n L(0/1).w L(0/2).(k ys) yr1980-yr1984, ///
         lags(2) twostep vce(robust)
est store Sysxtdpdsys

采用 xtdpd 命令进行 SYS-GMM 估计

xtdpd 估计命令:

xtdpd n L(1/2).n L(0/1).w L(0/2).(k ys) yr1980-yr1984, ///
      dgmmiv(n) lgmmiv(n) div(L(0/1).w L(0/2).(k ys))       ///
      div(yr1980-yr1984) twostep vce(robust)
est store Sysxtdpd

采用 xtabond2 命令进行 SYS-GMM 估计

xtabond2 估计命令:

xtabond2 n l(1/2).n l(0/1).w l(0/2).(k ys) yr1980-yr1984, ///
         gmm(l.n) iv(l(0/1).w l(0/2).(k ys), eq(diff))     ///
         iv(yr1980-yr1984,eq(diff)) twostep robust
est store Sysxtabond2

3.4 模型估计结果比较

local mm "Fdxtabond Fdxtdpd Fdxtabond2 Sysxtdpdsys Sysxtdpd Sysxtabond2"
esttab `mm', mtitle(`mm') compress star(* 0.1 ** 0.05 *** 0.01) b(%10.3f) nogap
----------------------------------------------------------------------------------------
                 (1)          (2)          (3)          (4)          (5)          (6)   
           Fdxtabond      Fdxtdpd    Fdxtabo~2    Sysxtdp~s     Sysxtdpd    Sysxtab~2   
----------------------------------------------------------------------------------------
L.n            0.656***     0.656***     0.656***     0.977***     0.977***     1.057***
              (3.34)       (3.34)       (7.29)       (6.89)       (6.89)      (12.83)   
L2.n          -0.073       -0.073       -0.073***    -0.084**     -0.084**     -0.091**
             (-1.61)      (-1.61)      (-2.70)      (-2.00)      (-2.00)      (-2.05)   
w             -0.513***    -0.513***    -0.513***    -0.563***    -0.563***    -0.526***
             (-3.43)      (-3.43)      (-9.55)      (-3.73)      (-3.73)      (-2.98)   
L.w            0.329        0.329        0.329***     0.567***     0.567***     0.558**
              (1.59)       (1.59)       (3.42)       (2.67)       (2.67)       (2.41)   
k              0.269***     0.269***     0.269***     0.285***     0.285***     0.274***
              (3.89)       (3.89)       (6.15)       (4.26)       (4.26)       (4.39)   
L.k            0.022        0.022        0.022       -0.088       -0.088       -0.108   
              (0.26)       (0.26)       (0.43)      (-1.01)      (-1.01)      (-1.32)   
L2.k          -0.041       -0.041       -0.041       -0.096**     -0.096**     -0.114***
             (-0.96)      (-0.96)      (-1.58)      (-2.22)      (-2.22)      (-2.88)   
ys             0.592***     0.592***     0.592***     0.614***     0.614***     0.642***
              (3.56)       (3.56)       (5.13)       (3.45)       (3.45)       (3.73)   
L.ys          -0.572**     -0.572**     -0.572***    -0.765***    -0.765***    -0.756***
             (-2.23)      (-2.23)      (-4.10)      (-3.10)      (-3.10)      (-2.82)   
L2.ys          0.117        0.117        0.117        0.114        0.114        0.127   
              (0.73)       (0.73)       (1.03)       (0.66)       (0.66)       (0.67)   
yr1980         0.009        0.009        0.009        0.009        0.009        0.017   
              (0.65)       (0.65)       (0.86)       (0.56)       (0.56)       (1.14)   
yr1981        -0.035       -0.035       -0.035*      -0.025       -0.025       -0.017   
             (-1.27)      (-1.27)      (-1.75)      (-0.84)      (-0.84)      (-0.59)   
yr1982        -0.043       -0.043       -0.043**     -0.030       -0.030       -0.019   
             (-1.49)      (-1.49)      (-2.05)      (-0.93)      (-0.93)      (-0.70)   
yr1983        -0.028       -0.028       -0.028       -0.010       -0.010        0.007   
             (-0.85)      (-0.85)      (-1.29)      (-0.27)      (-0.27)       (0.24)   
yr1984        -0.034       -0.034       -0.034       -0.021       -0.021       -0.008   
             (-1.03)      (-1.03)      (-1.50)      (-0.62)      (-0.62)      (-0.28)   
_cons          0.494        0.494                     0.325        0.325       -0.103   
              (0.74)       (0.74)                    (0.49)       (0.49)      (-0.14)   
----------------------------------------------------------------------------------------
N                611          751          611          751          751          751   
----------------------------------------------------------------------------------------

t statistics in parentheses
* p<0.1, ** p<0.05, *** p<0.01

由上表可以看出,在 FD-GMM 估计中,雇佣员工数量对数的一阶滞后项的系数在 0.6 左右,而在 SYS-GMM 估计中的系数为 0.9 左右,同时,SYS-GMM 估计结果整体偏高,并且各个系数显著性水平也更高。

对于 FD-GMM 估计,三种命令估计的结果相同,因此在做 FD-GMM 时,选择三者之中任意命令对结果没有影响,而对于 SYS-GMM 估计,xtdpdsysxtdpd 的估计结果一致,而 xtabond2 估计结果与前面两个命令有差异。

4. 解释变量中含有内生变量

考虑如下模型:

其中,yit1 是一个典型的内生变量,这里用 L.(2/.)yit 作为 D.yit1 的工具变量,假设 kit 为内生解释变量,使用其二阶及更高阶的滞后项 L.(2/.)kit作为工具变量 。

具体命令使用:

  • xtabond: endogenous() 选项来设定内生解释变量,在本例中为 endogenous(k),如果限定使用 kit 工具变量的个数,比如只使用二阶和三阶滞后项,则可以设定为 endogenous(k, lag(0 2)); 如果内生变量为 kit 的滞后一期,则可以设定为 endogenous(k, lag(1 2)),此时工具变量为滞后项kit1的二、三阶滞后项
  • xtdpddgmmiv()lgmmiv()选项来设定内生变量 (包括被解释变量和解释变量),当使用 FD-GMM 估计时,设定为 dgmmiv(y k),而使用SYS-GMM估计时,则设定为dgmmiv(y k) lgmmiv(y k)
  • xtabond2gmm() 选项来设定内生变量 (包括被解释变量和解释变量),对于内生被解释变量设定为 gmm(l.y) 或者 gmm(y, lag(2 .)) ,为将解释变量的二阶及所有高阶滞后项作为工具变量;对于内生解释变量设定为gmm(k) ,其含义是将解释变量的一阶及所有高阶滞后项作为工具变量,若设定成gmm(k, lag(2 3))则为将解释变量的二阶和三阶滞后项作为工具变量
  • xtdpdsysendogenous() 选项来设定内生解释变量,设定为endogenous(k) ,表示将内生解释变量 k 的二阶及所有高阶滞后项作为工具变量;设定为endogenous(k lag(0, 2)) ,表示将内生解释变量 k 的二阶和三阶滞后项作为工具变量,其中 0 为变量 k 的当期值作为内生变量,2 表示内生变量 k 的滞后 2 阶和 3 阶项作为工具变量; 若设定为 endogenous(k, lag(1, 3))表示将内生解释变量 L.k ( k 的一阶滞后项) 的二、三、四阶滞后项 (即 L(2/4).L.k) 作为工具变量
*以abdata.dta数据为例,假设资本存量 k 为内生变量,k 的设定如下

xtabond n L(0/1).w L(0/2).ys yr1980-yr1984, lags(2) endogenous(k) twostep vce(robust)

xtabond n L(0/1).w L(0/2).ys yr1980-yr1984, lags(2) endogenous(k, lag(0, 2)) twostep vce(robust)
// 限定内生解释变量工具变量的滞后阶数

xtabond n L(0/1).w L(0/2).ys yr1980-yr1984, lags(2) endogenous(k, lag(1, 2)) twostep vce(robust)
// 设定滞后项的内生解释变量

xtdpd n L(1/2).n L(0/1).w L(0/2).ys k yr1980-yr1984, dgmmiv(n k) div(L(0/1).w L(0/2).ys) ///
    div(yr1980-yr1984) twostep vce(robust) // FD-GMM 估计

xtdpd n L(1/2).n L(0/1).w L(0/2).ys k yr1980-yr1984, dgmmiv(n  k) lgmmiv(n  k) ///
            div(year yr1979-yr1984) nocons hascons vce(robust) // SYS-GMM 估计

xtabond2 n l(1/2).n l(0/1).w l(0/2).ys k yr1980-yr1984, ///
    gmm(l.n k) iv(l(0/1).w l(0/2).ys) iv(yr1980-yr1984) nolevel twostep robust

xtabond2 n l(1/2).n l(0/1).w l(0/2).ys k yr1980-yr1984, ///
    gmm(l.n) gmm(k, lag(2 3)) iv(l(0/1).w l(0/2).ys) iv(yr1980-yr1984) nolevel twostep robust
// 限定内生解释变量工具变量的滞后阶数

xtdpdsys n L(0/1).w L(0/2).ys k yr1980-yr1984, ///
    lags(2) endog(k) twostep vce(robust) // SYS-GMM 估计

xtdpdsys n L(0/1).w L(0/2).ys k yr1980-yr1984, ///
    lags(2) endog(k, lag(0, 2)) twostep vce(robust) // 限定内生解释变量工具变量的滞后阶数

xtdpdsys n L(0/1).w L(0/2).ys k yr1980-yr1984, ///
    lags(2) endogenous(k, lag(1, 3)) twostep vce(robust) // 设定滞后项的内生解释变量

5. 干扰项序列相关检验无法通过

Arellano and Bond (1991) 估计工具变量的设定关键点:

换言之,FD-GMM 和 SYS-GMM 成立的前提是扰动项 {εi,t} 不存在序列相关,否则就会导致内生性问题。因此,需要对扰动项序列相关进行检验,具体如下:

原假设:扰动项不存在序列相关;

  • “扰动项的一阶差分” 存在自相关:
  • 扰动项的差分不存在二阶或更高的自相关:

故可通过检验扰动项的差分是否存在二阶 (或更高阶) 的自相关来检验原假设。

Stata 命令为 estat abond

xtabond n L(0/1).w L(0/2).(k ys) yr1980-yr1984, lags(2) twostep vce(robust)
estat abond
Arellano-Bond test for zero autocorrelation in first-differenced errors
  +-----------------------+
  |Order |  z     Prob > z|
  |------+----------------|
  |   1  |-2.1783  0.0294 |
  |   2  |-.30351  0.7615 |
  +-----------------------+
   H0: no autocorrelation

可以看出,在 5% 的显著性水平下,扰动项的差分存在一阶自相关,但不存在二阶自相关,故不拒绝原假设。

如果无法通过序列相关检验,主要原因可能是干扰项中包含了一些序列相关特征较为明显的变量。此时,我们可以通过增加解释变量,以使干扰项变得更「干净」。具体设定如下:

  • 加入时间虚拟变量;
  • 加入部分解释变量的滞后项 (要有一定的理论依据);
  • 加入被解释变量的滞后项,可以通过 xtabond 命令的 lag(#) 选项来设定。

需要特别说明的是,序列相关检验和过度识别检验往往要同步进行。因为,如果选择的工具变量不妥 (表现为过度识别检验无法通过),序列相关检验也就没有了根基。

6. 过度识别检验无法通过

在工具变量大于内生变量个数时,需要进行过度识别检验。基本原理是检验工具变量是否是与干扰项相关,即工具变量是否为外生变量。具体如下:

原假设:所有工具变量都是外生;

方法:在 xtabond 命令以后,使用 estat sargan 命令。

quietly xtabond n L(0/1).w L(0/2).(k ys) yr1980-yr1984, lags(2)  // 不使用 VCE(robust)
estat sargan  // 过度识别检验
Sargan test of overidentifying restrictions
        H0: overidentifying restrictions are valid
        chi2(25)     =  61.26444
        Prob > chi2  =    0.0001

可以看出,该结果拒绝了原假设,即认为存在工具变量和干扰项是相关。 但是 Arellano and Bond (1991) 指出,当干扰项存在异方差时, Sargan 检验倾向于过度拒绝原假设,因此得到的结论并不可信。建议采用两阶段估计,再执行 Sargan 检验比较稳妥。

quietly xtabond n L(0/1).w L(0/2).(k ys) yr1980-yr1984, twostep lags(2)   // 不使用 VCE(robust)
estat sargan  // 使用两阶段估计后的过度识别检验
Sargan test of overidentifying restrictions
        H0: overidentifying restrictions are valid
        chi2(25)     =  29.34445
        Prob > chi2  =    0.2498

可以看出,结果没有拒绝原假设,即工具变量与扰动项不相关。

实际上,Sargan 检验是联合检验:(1) 模型的设定正确 (2) 工具变量合理。因此,若拒绝原假设,则说明前面两个假设至少有一个存在问题。此时,应该先考虑模型的设定是否有问题,进而分析工具变量的设定是否合理。

关于工具变量,通常使用 yts(s2) 作为 Δyit1 的工具变量,但当 T 较大时,就会有很多个工具变量。显然,随着 s 的增加,ρs=corr(Δyit1,yts) 会越来越小。一般而言,当 s6 以后,对应的工具变量很可能是弱工具变量,即 yt7 与 Δyit1 的相关性很低。

通过减少工具变量的使用,一定程度上可以避免弱工具变量问题。在 xtabond 命令中,可以使用 maxldep(#) 来限制工具变量的最大滞后阶数,进而达到限制工具变量总数的目的。例如,xtabond y x, maxldep(5) 意味着最多只用五个滞后项 (注意:不是五阶滞后),即用 yt2,yt6 作为 Δyit1 的工具变量。

未使用 maxldep() 选项,GMM 式工具变量为 L(2/.).n,具体如下:

xtabond n L(0/1).w L(0/2).(k ys) yr1980-yr1984, twostep  lags(2)

Instruments for differenced equation
        GMM-type: L(2/.).n
        Standard: D.w LD.w D.k LD.k L2D.k D.ys LD.ys L2D.ys D.yr1980
                  D.yr1981 D.yr1982 D.yr1983 D.yr1984

使用 maxldep() 选项,GMM 式工具变量为 L(2/6).n,具体如下:

xtabond n L(0/1).w L(0/2).(k ys) yr1980-yr1984, twostep lags(2) maxldep(5)
Instruments for differenced equation
        GMM-type: L(2/6).n
        Standard: D.w LD.w D.k LD.k L2D.k D.ys LD.ys L2D.ys D.yr1980
                  D.yr1981 D.yr1982 D.yr1983 D.yr1984

使用其他动态面板回归命令的方法:

  • xtdpd 命令:使用 dgmmiv(n, lagrange(2 5)),将被解释变量的 2-5 阶滞后项作为 Δnit1 的工具变量;
  • xtabond2 命令:使用 gmm(l.n, laglimits(2 5) collapse))laglimits() 限制滞后项的阶数,collapse 系统自动删减工具变量;
  • xtdpdsys 命令:使用 maxldep(5),表示最多使用被解释变量的 5 阶滞后作为工具变量。

7. 大 T 小 N 型面板数据

上面介绍的 FD-GMM 和 SYS-GMM 适用于 大 N 小 T 的短面板数据,当研究样本为长面板数据 (大 T 小 N) 时,比如省级面板数据,GMM 估计可能不是最有效的。根据 Bruno(2005) 的做法,基于 Bootstrap 偏差纠正的 LSDV 估计可以在一定程度上克服 N 较小的问题。

下面,将通过一个模拟例子,来对 FD-GMM、SYS-GMM 和 bias corrected LSDV 的估计效果进行比较。

数据生成过程 (DPG)

该面板数据包含 10 个个体的 60 期数据,即 N=10T=60,变量具体构造如下:

对应 Stata 命令:

clear all
help xtarsim //  xtarsim 是模拟生成面板数据的命令
xtarsim y x eta, n(10) t(60) gamma(0.9) beta(0.8) rho(0.2) one(corr 1) sn(9) seed(1234)

模型估计

xtabondxtdpdsys 命令进行 FD-GMM 和 SYS-GMM 估计:

xtabond y x
est store FdGMM
xtdpdsys y x
est store SysGMM

xtlsdvc 命令进行 bias corrected LSDV 估计:

help xtlsdvc // 外部命令,需要下载安装词命令
xtlsdvc y x, initial(ab)  vcov(50)  // vcov(50) 计算标准误、显著性,需要较长等待时间
*initial(ab) 表示选择 Arellano 和 Bond (1991) 提出的 FD-GMM 估计为偏差纠正的初始量
est store LSDVab
xtlsdvc y x, initial(bb)  vcov(50)  // vcov(50) 计算标准误、显著性,需要较长等待时间
*initial(ab) 表示选择 Blundell 和 Bond (1998) 提出的 Sys-GMM 估计为偏差纠正的初始量
est store LSDVbb
local mm "FdGMM SysGMM LSDVab LSDVbb"
esttab `mm', mtitle(`mm') compress star(* 0.1 ** 0.05 *** 0.01)

估计结果为:


--------------------------------------------------------------
                 (1)          (2)          (3)          (4)   
               FdGMM       SysGMM       LSDVab       LSDVbb   
--------------------------------------------------------------
L.y            0.874***     0.870***     0.894***     0.896***
             (50.50)      (55.79)      (54.83)      (55.32)   

x              0.842***     0.863***     0.836***     0.837***
             (19.20)      (20.95)      (21.71)      (21.75)   

_cons          0.105**      0.109**                           
              (2.33)       (2.42)                             
--------------------------------------------------------------
N                580          590          590          590   
--------------------------------------------------------------
t statistics in parentheses
* p<0.1, ** p<0.05, *** p<0.01

把数据模拟中的 yit1 的系数由 0.9 变为 0.4,重复上述过程,再对估计结果进行比较。

clear all
xtarsim y x eta, n(10) t(60) gamma(0.4) beta(0.8) rho(0.2) one(corr 1) sn(9) seed(1234)
xtabond y x
est store FdGMM
xtdpdsys y x
est store SysGMM
xtlsdvc y x, initial(ab)  vcov(50)  
est store LSDVab
xtlsdvc y x, initial(bb)  vcov(50)
est store LSDVbb
local mm "FdGMM SysGMM LSDVab LSDVbb"
esttab `mm', mtitle(`mm') compress star(* 0.1 ** 0.05 *** 0.01)

估计结果为:

--------------------------------------------------------------
                 (1)          (2)          (3)          (4)   
               FdGMM       SysGMM       LSDVab       LSDVbb   
--------------------------------------------------------------
L.y            0.393***     0.390***     0.396***     0.396***
             (27.72)      (32.09)      (26.65)      (26.17)   

x              0.812***     0.812***     0.812***     0.812***
             (58.10)      (61.98)      (67.61)      (66.06)   

_cons          0.589***     0.593***                          
             (13.03)      (13.28)                             
--------------------------------------------------------------
N                580          590          590          590   
--------------------------------------------------------------
t statistics in parentheses
* p<0.1, ** p<0.05, *** p<0.01

可以看出,当 yit1 的系数为 0.4, XTLSDVC 的优势非常有限;而当 yit1 的系数为 0.9 时,XTLSDVC 的优势比较明显。

8. 参考文献

  • Arellano M., S. Bond, 1991, Some tests of specification for panel data: monte carlo evidence and an application to employment equations. The Review of Economic Studies, 58(2), 277-297.   -Link-
  • Blundell R.W., and S.R. Bond, 1998, Initial Conditions and Moment Restrictions in Dynamic Panel Data Models. Journal of Econometrics,87,115-143.   -Link-
  • Bond, S., 2002, Dynamic panel data models: A guide to micro data methods and practice. Portuguese Economic Journal, 1 (2): 141-162.   -Link-
  • Bruno, G. S. F., 2005, Approximating the bias of the LSDV estimator for dynamic unbalanced panel data models. Economics Letters, 87(3), 361–366.   -Link-

相关推文

9. Appendix 本文涉及的 Stata 代码

*https://gitee.com/arlionn/data/blob/master/data01/abdata.dta
use abdata, clear   // 调用数据
*-or
webuse abdata, clear  // 部分版本的 Stata 可能无法执行
*- FD-GMM 估计
xtabond n L(0/1).w L(0/2).(k ys) yr1980-yr1984,  ///
		lags(2) twostep vce(robust)   // L(0/1).w 表示 w 的当期值与一阶滞后
est store Fdxtabond

xtdpd n l(1/2).n L(0/1).w L(0/2).(k ys) yr1980-yr1984, ///
      dgmmiv(n) div(L(0/1).w L(0/2).(k ys)) ///
      div(yr1980-yr1984) twostep vce(robust)
est store Fdxtdpd

*ssc install xtabond2, replace // xtabond2 是外部命令需要下载
xtabond2 n l(1/2).n l(0/1).w l(0/2).(k ys)  yr1980-yr1984,      ///
         gmm(l.n) iv(l(0/1).w l(0/2).(k ys))  ///
         iv(yr1980-yr1984) ///
         nolevel twostep robust
est store Fdxtabond2

*- SYS-GMM 估计
xtdpdsys n L(0/1).w L(0/2).(k ys) yr1980-yr1984, ///
         lags(2) twostep vce(robust)
est store Sysxtdpdsys

xtdpd n L(1/2).n L(0/1).w L(0/2).(k ys) yr1980-yr1984, ///
      dgmmiv(n) lgmmiv(n) div(L(0/1).w L(0/2).(k ys))       ///
      div(yr1980-yr1984) twostep vce(robust)
est store Sysxtdpd

xtabond2 n l(1/2).n l(0/1).w l(0/2).(k ys) yr1980-yr1984, ///
         gmm(l.n) iv(l(0/1).w l(0/2).(k ys), eq(diff))     ///
         iv(yr1980-yr1984,eq(diff)) twostep robust
est store Sysxtabond2

*- FD-GMM 估计和 SYS-GMM 估计结果呈现
local mm "Fdxtabond Fdxtdpd Fdxtabond2 Sysxtdpdsys Sysxtdpd Sysxtabond2"
esttab `mm', mtitle(`mm') compress star(* 0.1 ** 0.05 *** 0.01) b(%10.3f) nogap

*- 解释变量中含有内生变量(K为内生变量)
xtabond n L(0/1).w L(0/2).ys yr1980-yr1984, lags(2) endogenous(k) twostep vce(robust)

xtabond n L(0/1).w L(0/2).ys yr1980-yr1984, lags(2) endogenous(k, lag(0, 2)) twostep vce(robust)
// 限定内生解释变量工具变量的滞后阶数

xtabond n L(0/1).w L(0/2).ys yr1980-yr1984, lags(2) endogenous(k, lag(1, 2)) twostep vce(robust)
// 设定滞后项的内生解释变量

xtdpd n L(1/2).n L(0/1).w L(0/2).ys k yr1980-yr1984, dgmmiv(n k) div(L(0/1).w L(0/2).ys) ///
    div(yr1980-yr1984) twostep vce(robust) // FD-GMM 估计

xtdpd n L(1/2).n L(0/1).w L(0/2).ys k yr1980-yr1984, dgmmiv(n  k) lgmmiv(n  k) ///
            div(year yr1979-yr1984) nocons hascons vce(robust) // SYS-GMM 估计

xtabond2 n l(1/2).n l(0/1).w l(0/2).ys k yr1980-yr1984, ///
    gmm(l.n k) iv(l(0/1).w l(0/2).ys) iv(yr1980-yr1984) nolevel twostep robust

xtabond2 n l(1/2).n l(0/1).w l(0/2).ys k yr1980-yr1984, ///
    gmm(l.n) gmm(k, lag(2 3)) iv(l(0/1).w l(0/2).ys) iv(yr1980-yr1984) nolevel twostep robust
// 限定内生解释变量工具变量的滞后阶数

xtdpdsys n L(0/1).w L(0/2).ys k yr1980-yr1984, ///
    lags(2) endog(k) twostep vce(robust) // SYS-GMM 估计

xtdpdsys n L(0/1).w L(0/2).ys k yr1980-yr1984, ///
    lags(2) endog(k, lag(0, 2)) twostep vce(robust) // 限定内生解释变量工具变量的滞后阶数

xtdpdsys n L(0/1).w L(0/2).ys k yr1980-yr1984, ///
    lags(2) endogenous(k, lag(1, 3)) twostep vce(robust) // 设定滞后项的内生解释变量

*- 序列相关检验
xtabond n L(0/1).w L(0/2).(k ys) yr1980-yr1984, lags(2) twostep vce(robust)
estat abond

*- 过度识别检验
quietly xtabond n L(0/1).w L(0/2).(k ys) yr1980-yr1984, lags(2)  // 不使用 VCE(robust)
estat sargan  

quietly xtabond n L(0/1).w L(0/2).(k ys) yr1980-yr1984, twostep lags(2)   // 不使用 VCE(robust)
estat sargan  // 使用两阶段估计后的过度识别检验

xtabond n L(0/1).w L(0/2).(k ys) yr1980-yr1984, twostep  lags(2) // 未使用 maxldep() 限定GMM式工具变量数量
xtabond n L(0/1).w L(0/2).(k ys) yr1980-yr1984, twostep lags(2) maxldep(5)  // 使用 maxldep()

*- 大 T 小 N 动态面板数据
clear all
help xtarsim //  xtarsim 是模拟生成面板数据的命令
xtarsim y x eta, n(10) t(60) gamma(0.9) beta(0.8) rho(0.2) one(corr 1) sn(9) seed(1234)
// y的一阶滞后项系数为0.9

xtabond y x
est store FdGMM
xtdpdsys y x
est store SysGMM

help xtlsdvc // 外部命令,需要下载安装词命令
xtlsdvc y x, initial(ab)  vcov(50)  // vcov(50) 计算标准误、显著性,需要较长等待时间
*initial(ab) 表示选择 Arellano 和 Bond (1991) 提出的 FD-GMM 估计为偏差纠正的初始量
est store LSDVab
xtlsdvc y x, initial(bb)  vcov(50)  // vcov(50) 计算标准误、显著性,需要较长等待时间
*initial(ab) 表示选择 Blundell 和 Bond (1998) 提出的 Sys-GMM 估计为偏差纠正的初始量
est store LSDVbb

local mm "FdGMM SysGMM LSDVab LSDVbb"
esttab `mm', mtitle(`mm') compress star(* 0.1 ** 0.05 *** 0.01)

clear all
xtarsim y x eta, n(10) t(60) gamma(0.4) beta(0.8) rho(0.2) one(corr 1) sn(9) seed(1234)
// y的一阶滞后项系数为0.4
xtabond y x
est store FdGMM
xtdpdsys y x
est store SysGMM
xtlsdvc y x, initial(ab)  vcov(50)  
est store LSDVab
xtlsdvc y x, initial(bb)  vcov(50)
est store LSDVbb
local mm "FdGMM SysGMM LSDVab LSDVbb"
esttab `mm', mtitle(`mm') compress star(* 0.1 ** 0.05 *** 0.01)

相关课程

连享会-直播课 上线了!
http://lianxh.duanshu.com

免费公开课:


课程一览

支持回看

专题 嘉宾 直播/回看视频
最新专题 因果推断, 空间计量,寒暑假班等
数据清洗系列 游万海 直播, 88 元,已上线
研究设计 连玉君 我的特斯拉-实证研究设计-幻灯片-
面板模型 连玉君 动态面板模型-幻灯片-
面板模型 连玉君 直击面板数据模型 [免费公开课,2小时]

Note: 部分课程的资料,PPT 等可以前往 连享会-直播课 主页查看,下载。


关于我们

  • Stata连享会 由中山大学连玉君老师团队创办,定期分享实证分析经验。直播间 有很多视频课程,可以随时观看。
  • 连享会-主页知乎专栏,300+ 推文,实证分析不再抓狂。
  • 公众号推文分类: 计量专题 | 分类推文 | 资源工具。推文分成 内生性 | 空间计量 | 时序面板 | 结果输出 | 交乘调节 五类,主流方法介绍一目了然:DID, RDD, IV, GMM, FE, Probit 等。
  • 公众号关键词搜索/回复 功能已经上线。大家可以在公众号左下角点击键盘图标,输入简要关键词,以便快速呈现历史推文,获取工具软件和数据下载。常见关键词:课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法

连享会主页  lianxh.cn
连享会主页 lianxh.cn

连享会小程序:扫一扫,看推文,看视频……

扫码加入连享会微信群,提问交流更方便

✏ 连享会学习群-常见问题解答汇总:
https://gitee.com/arlionn/WD

New! lianxh 命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh