看到坛子上有人提问,集中了《How to do xtabond2》Roodman (2009)的一些讨论和自己做模型过程中的一些积累,简要做了个总结。
1)最大的区别是,xtabond2将外生变量(iv中给出)的滞后项也作为了level equation的工具变量,而xtdpdsys不这么做。
通过在xtabond2中设置iv( 外生变量列 ,eq(d) )可以使两者一样。
2)还有是工具变量矩阵的设定不同。这一点大部分不是专门研究计量理论的人可以忽略,xtabond2有一个h(#)设置,默认#是3,而系统dpd用的是2,这是之前gauss和ox程序下延续下来的。
The h(#) option, which most users can safely ignore, controls the choice of H. h(1) sets H = I, for both difference and system GMM. For difference GMM, h(2) and h(3) coincide. They differ for system GMM, however, with h(2) imitating DPD for Ox and h(3) being the xtabond2 default。
3)另外,xtdpdsys和xtabond2在差分方程的正交化处理之后,在常数项的对待上有不同,前者在在正交化之后又加上了常数项(差分过程本身会把常数项去掉)。
noconstant excludes the constant term from X and Z; however, it has no effect in difference GMM because differencing eliminates the constant anyway.
Here xtabond2 differs from xtabond, xtdpd, and DPD, which by default enter the constant in
difference GMM after transforming the data. DPD does the same for time dummies. xtabond2
avoids this practice for several reasons. First, in Stata, it is more natural to treat time dummies,
typically created with xi, like any other regressor, transforming them. Second, introducing the
constant term after differencing is equivalent to entering t as a regressor before transformation,
which may not be what users intend. By the same token, it introduces an inconsistency with
system GMM: in DPD and xtdpdsys, when doing system GMM, the constant term enters only
in the levels equation, and in the usual way; it means 1 rather than t. Thus switching between
difference and system GMM changes the model. However, these problems are minor as long as a full
set of time dummies is included. Because the linear span of the time dummies and the constant
term together is the same as that of their first differences or orthogonal deviations, it does not
matter much whether the time dummies and constant enter transformed or not.
举个例子,使用网上下载的abdata。
webuse abdata
下面几组命令的结果应当一致
// CASE #1- W 严格外生
xtdpdsys n w, two vce(robust)
xtabond2 n l.n w, gmm(l.n) iv(w, eq(dif)) h(2) two robust
//CASE #2- W 是predetermined(弱外生)
xtdpdsys n, pre(w) two vce(robust)
xtabond2 n l.n w, gmm(l.n w) h(2) two robust
// CASE #3- W 内生
xtdpdsys n, endo(w) two vce(robust)
xtabond2 n l.n w, gmm(l.n l.w) h(2) two robust
关于两者是否都能做内生和先决变量区分,答案显然是两者都可以。
个人感觉xtabond2更加灵活,但手动性操作对原理的认识要求也就更高,相当于个手动模式的单反相机。