查看原文
其他

动态面板中的内生变量:xtabond命令中endog()选项的设定

连享会 连享会 2022-12-31

👇 连享会 · 推文导航 | www.lianxh.cn

作者:连玉君 (中山大学)
E-Mail: arlionn@163.com

温馨提示: 文中链接在微信中无法生效。请点击底部「阅读原文」。或直接长按/扫描如下二维码,直达原文:

问题背景

考虑如下动态面板数据模型:

假设 是外生变量,但 是内生变量,若采用 FD-GMM 估计则 Stata 估模型 (1),则 Stata 命令为:

. xtabond n w , endog(k) // M1

也有人使用如下命令 (在常规的解释变量中也加入了 k),Stata 也能正常执行之:

. xtabond n w k , endog(k) // M2

问题: 上述两种设定,M1 和 M2,哪一个正确?

简要解答: M1 是正确的。

解释: 既然变量 k 是内生变量,就应该只出现在 endog() 选项中,若出现在逗号之前,则被 Stata 视为外生变量。M2 的命令写法,其实是把变量 k 同时视为内生变量和外生变量,自相矛盾了。

奇怪的是,Stata 似乎过于宠溺她的用户:M2 这条命令可以顺利执行 (我印象里在 Stata 9.0 以前的版本里,这条命令是无法执行的)。下面,我们对比两种情况下结果的差异:

*-调入数据
webuse "abdata.dta", clear
xtset id year


*-M1:前面不放 k
xtabond n w , endog(k)
est store k0

*-M2:前面放 k
xtabond n w k, endog(k)
est store k1

输出结果如下 (部分不重要的结果从略):

. *-M1:前面不放 k
. xtabond n w , endog(k)

Arellano-Bond dynamic panel-data estimation Number of obs = 751
Group variable: id Number of groups = 140

Number of instruments = 58 Wald chi2(3) = 1777.58
Prob > chi2 = 0.0000
One-step results
------------------------------------------------------------------------------
n | Coef. Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
n |
L1. | 0.228 0.063 3.59 0.000 0.103 0.352
|
k | 0.689 0.055 12.52 0.000 0.581 0.796
w | -0.517 0.054 -9.57 0.000 -0.622 -0.411
_cons | 2.723 0.184 14.77 0.000 2.362 3.085
------------------------------------------------------------------------------
Instruments for differenced equation
GMM-type: L(2/.).n L(2/.).k
Standard: D.w
.
. *-M2:前面放 k
. xtabond n w k, endog(k)
note: k dropped because of collinearity

Arellano-Bond dynamic panel-data estimation Number of obs = 751
Group variable: id Number of groups = 140

Number of instruments = 59 Wald chi2(3) = 1952.87
Prob > chi2 = 0.0000
One-step results
------------------------------------------------------------------------------
n | Coef. Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
n |
L1. | 0.505 0.047 10.83 0.000 0.413 0.596
|
k | 0.384 0.029 13.38 0.000 0.328 0.441
w | -0.617 0.051 -12.01 0.000 -0.718 -0.517
_cons | 2.602 0.182 14.28 0.000 2.245 2.959
------------------------------------------------------------------------------
Instruments for differenced equation
GMM-type: L(2/.).n L(2/.).k
Standard: D.w D.k

作为对比,大家可以重点关注如下几个信息:

M2 的估计结果的第一行,Stata 的提示信息为 note: k dropped because of collinearity,似乎已经自动删除了我们在逗号前设定的冗余变量 k

事实并非如此。因为在 M2 估计结果的最后一行为 Standard: D.w D.k (请读者自行对比一下 M1 估计结果的最后一行 Standard: D.w),这意味着变量 D.k 也被自动加入到了工具变量矩阵中。

补充说明一下:

采用 FD-GMM 估计模型  (1) 时,需要先对其进行 FD 处理,得到如下差分方程:

这里, 都是内生变量。

  • 的工具变量为:,即 L(2/.).n
  •   的工具变量为:,即 L(2/.).k

这些都是 真正意义上的工具变量,在 Stata 的结果中称为 GMM-type: xxx

对于模型 (2) 中的外生变量 ,它可以视为自己的工具变量,在 Stata 结果中标记为 Standard:xxx。因为,FD-GMM 在最终估计时,会统一把所有不与 相关的变量都写入工具变量矩阵 ,并基于矩条件 构造样本矩条件,进而采用 GMM 进行估计。

有了上面的背景信息,就不难理解为什么 M2 是错误的了。由于 M2 写法在逗号前后都放置了变量 k,Stata 会把 L(2/.).kD.k 两组工具变量都加入工具变量矩阵 。相比之下,在 M1 写法中,只有 L(2/.).k 被纳入工具变量矩阵

最终,我们来看看两种写法的估计结果的差异有多大:

*-----对比结果-------
local m "k0 k1"
local mt "前面放k 前面不放k"
esttab `m', mtitle(`mt')nogap compress replace ///
b(%6.3f) s(N zrank df_m) drop(`drop') ///
star(* 0.1 ** 0.05 *** 0.01) ///
addnotes("zrank: number of instruments")


/*
------------------------------------
(1) (2)
前面放k 前面不放k
------------------------------------
L.n 0.228*** 0.505***
(3.59) (10.83)
k 0.689*** 0.384***
(12.52) (13.38)
w -0.517*** -0.617***
(-9.57) (-12.01)
_cons 2.723*** 2.602***
(14.77) (14.28)
------------------------------------
N 751.000 751.000
zrank 58.000 59.000
df_m 3.000 3.000
------------------------------------
t statistics in parentheses
zrank: number of instruments
* p<0.1, ** p<0.05, *** p<0.01
*/

上面列出的对比结果中,zrank 表示工具变量的个数, 可以看出,第 (1) 列比第 (2) 列少用了一个工具变量 (58 v.s. 59),它其实就是 D.k

结论

虽然 M2 的设定方式在 Stata 中没有报错,但其背后的模型设定逻辑确实有问题的:变量 k 怎么可能雌雄同体呢?:它既是「外生变量」(被放在了前面) 又是「内生变量」(被放在了后面,即 endog(k) 选项中)。

简言之,在使用 xtabond 命令时,出现在 endog() 选项中的变量不能再出现在逗号前面的 varlist 中。

New! Stata 搜索神器:lianxhsongbl  GIF 动图介绍
搜: 推文、数据分享、期刊论文、重现代码 ……
👉 安装:
. ssc install lianxh
. ssc install songbl
👉  使用:
. lianxh DID 倍分法
. songbl all

🍏 关于我们

  • 连享会 ( www.lianxh.cn,推文列表) 由中山大学连玉君老师团队创办,定期分享实证分析经验。
  • 直通车: 👉【百度一下:连享会】即可直达连享会主页。亦可进一步添加 「知乎」,「b 站」,「面板数据」,「公开课」 等关键词细化搜索。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存