How2Do Xtabond2
How2Do Xtabond2
David Roodman
Research Fellow
Center for Global Development
xtabond2 in a nutshell
Firstado version in 11/03, Mata version in 11/05.
Extends built-in xtabond, to do system GMM,
Windmeijer correction, revamped syntax
Estimators designed for
– Small-T, large-N panels
– One dependent variable
– Dynamic
– Linear
– Regressors endogenous and predetermined
– Fixed individual effects
– Arbitrary autocorrelation and het. within panels
– General application
Outline of paper
Introduction to linear GMM
Motivation and design of
difference and system GMM
xtabond2 syntax
Black box problem
Canned & sophisticated procedure
Dangers in hidden sophistication
– finite sample ≠ asymptotic
Users should understand motivation and
limits of estimator
Linear GMM in one slide
Instrument vector z such that E[z ] 0
# instruments > # parameters so can’t have E N [z ] N1 Z 'Eˆ 0
Want to “minimize” N1 Z 'Eˆ in some sense
In what sense? By a pos-semi-def. quad. form given by A:
'
1 ˆ 1 ˆ 1 'ˆ 1 ˆ'
E N z A Z 'E N Z 'E A Z E E ZAZ E
'ˆ
N A N N N
β
Given A, minimizing leads to Aˆ X '
ZAZ '
X 1
X '
ZAZ '
Y
Always unbiased, but which A is efficient? Answer: A should weight
moments z i' E inversely with their variances and
covariances:
'
A EGMM Var Z E X, Z Z Var E X, ZZ Z ΩZ
1 ' 1 ' 1
βˆ EGMM X ' Z Z ' ΩZ
1
ZX '
X ZZ ΩZ Z Y
1
' ' 1 '
If Ω I, reduces to
2
Z ΩZ
' 1
2
Z Y Z ΩZ
' ' 1
2
Z Xβ Z ΩZ
' ' 1
2
Z 'E
1 1 1
* * *
(3) Y X β E
OLS efficient Var E *
I
OLS on (3) = GLS on (2) = GMM on (1)
GMM = GLS on Z-moments
Difference and system GMM
Basic model:
yit yi ,t 1 x it' β it
it i it
Ei E it Ei it 0
o Example: Indonesia
A problem of short panels
Individual dummies (=Within Groups) don’t help
o Transformed y endogenous, as are deeper lags
i ,t 1
Partial solution: OLS in differences
| Robust
| Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
n |
L1. | .6862261 .1445943 4.75 0.000 .4003376 .9721147
L2. | -.0853582 .0560155 -1.52 0.130 -.1961109 .0253944
w |
--. | -.6078208 .1782055 -3.41 0.001 -.9601647 -.2554769
L1. | .3926237 .1679931 2.34 0.021 .0604714 .7247759
k |
--. | .3568456 .0590203 6.05 0.000 .240152 .4735392
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
y i1 0 0 0 0 0 y i1 0 0
. .
0 yi 2 y i1 0 0 0 yi 2 y i1 0
0 0 0 yi3 yi 2 y i1 yi3 yi 2 y i1
,
y
i
i ,t 2 eˆit 0 for each t 3
i ,t
y i ,t 2 eit 0.
xtabond2 syntax
Y X Z
xtabond2 depvar varlist [if exp] [in range]
[, level(#) twostep robust noconstant small noleveleq
artests(#) arlevels h(#) nomata]
ivopt [ivopt ...] gmmopt [gmmopt ...]]
where gmmopt is
“GMM-style”
gmmstyle(varlist [, laglimits(# #) collapse
equation({diff | level | both}) passthru])
and ivopt is
Classic
Equivalents:
xi: xtabond2 y L.y i.t, gmm(L.y, laglim(1 .))
iv(i.t) robust noleveleq
xi: xtabond2 y L.y i.t, gmm(L.y)
iv(i.t) robust noleveleq
Or even:
regress n w k
abar, lags(2)
xtabond2 n w k, iv(w k, eq(level)) small arlevel
Run times for bbest (seconds)
700 MHz PC
xtabond2 ado 57
DPD for Ox 3