Stata The Stata listserver
[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

st: Does the xtabond command have a mistake???

To   Stata _ <>
Subject   st: Does the xtabond command have a mistake???
Date   Wed, 05 May 2004 14:02:20 -0500

Hi Statalist users,

After Giovanni’s helpful comments, I did a little experiment with xtabond and got results that lead me to believe that there’s a programming flaw in xtabond (but I hope I’m wrong) with regard to how it deals with endogeneity.  Consider the model

y(it) = a(i) + b1 * y(it-1) + b2 * x(it) + b3 * x(it-1) + e(it)

I found that the following two commands give identical results:

1.  xtabond   y     , lags(1)  pre(x, lag(1,1) )
4.  xtabond   y  L.x, lags(1)  pre(x, lag(0,1) )

So when you ask Stata to treat x as a predetermined variable, to use its lag also as a regressor, and to instrument x with its own lag, then what it is doing in reality is: treating x(it) as a predetermined variable, using x(it-1) as an instrument, and treating the variable z(it) = x(it-1) as strictly exogenous. However, if x(it) is predetermined, which means that 

E[ e(it) | a(i),   x(i1), x(i2),…,x(it-1), x(it) ] = 0        (Equ.1)

but that possibly

E[ e(it) | a(i),   z(it+1), z(it+2),…,z(iT) ] not= 0          (Equ.2)

(where a(i) is the unobserved effect), then it is impossible that z(it) is strictly exogenous. Strict exogeneity of z(it) would mean that

E[ e(it) | a(i),   z(i1), z(i2),…,z(iT) ] = 0                 (Equ.3)

However, given Equ.1 and Equ.2 above, we must have 

E[ e(it) | a(i),   z(i1), z(i2),…,z(it), z(it+1) ] = 0     

but possibly

E[ e(it) | a(i),   z(it+2), …, z(iT) ] not= 0     

Which obviously does not square with Stata’s treatment of z in the fashion of Equ.3. I hope this was lucidly explained. Am I seeing this wrongly or is there indeed a flaw with the way xtabond was programmed???


*   For searches and help try:

© Copyright 1996–2017 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index