Bookmark and Share

Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: st: dynamic panel - bootstrapped Sargan and exclusion tests

From   Stas Kolenikov <>
Subject   Re: st: dynamic panel - bootstrapped Sargan and exclusion tests
Date   Fri, 24 Jun 2011 17:40:25 -0400

I have very little clue about dynamic panels and -xtabond-, but you
will face at least two difficulties.

1. You need to bootstrap the whole panels (municipalities). That's a
methodological complication, but, fortunately, not a computational one
-- you can do this with -bootstrap, cluster() idcluster()-.

2. If you want to get the boostrap distribution of a test to
approximate the critical values or get the p-values, you need to
bootstrap under the null hypothesis. Resampling your raw data won't do
the trick, as the data satisfy the alternative rather than the null.
You would need to either get a wicked whitening (or pinkening)
transformation of your residuals that would produce the data of the
structure that satisfies the null (correlated within the panel;
uncorrelated between panels; having the autoregressive structure of
the desired lag, but 0 lags after that -- none of that is ensured by
the real data), or just generate them as normal with a given
covariance structure. Even if you think you are successful with it,
you still need to sell your approach to the referees.

On Fri, Jun 24, 2011 at 1:01 PM, Bernardo Schettini
<> wrote:
> Dear Statalisters,
> I estimating a dynamic panel model via system GMM and difference GMM.
> My panel is balanced with N=4156 municipalities and T=9 years of data,
> NT=41560. I need to start with 3 lags of each variable, including the
> dependent variable, and then test for lag reduction.
> xtabond2 y1 l(1/3).(y1 y2 y3), gmm(l.y1 l.y2 l.y3) twostep robust
> xtabond2 y1 l(1/3).(y1 y2 y3), gmm(l.y1 l.y2 l.y3) twostep robust noleveleq
> The number of instruments is 99 and 121, respectively. The
> autocorrelation pattern is exactly what one expects from a dynamic
> panel model (rejects AR(2) but not AR(1) residuals).
> It happens the Sargan and Hansen tests always reject the moment
> conditions in system GMM and difference GMM. Reducing the number of
> instruments won't validate the instruments, and reported p-values are
> always 0.00.  After some experimentations, I was led to conclude that
> either (i) overidentifying restrictions are really not valid, or (ii)
> asymptotic values are leading to overrejection of a correct null.
> Under (i), I could always use and exactly identified model and produce
> 2SLS estimates (using the lagged level as the instrument for the 1st
> difference). Ok, but how to test for lag reduction? Using Wald-type
> tests? I am not sure if that is correct. With overidentified models,
> some papers use difference-in-Sargan tests. The problem is my model is
> just identified under this 2SLS estimation procedure.
> Under (ii), one alternative is to use bootstrapped critical values. It
> happens xtabond2 won't accept "boostrap, reps(#)" (it allows for
> jacknife, but it takes forever). I saw an old discussion in this
> forum, and some of you had a similar problem. I wonder if anyone can
> help me create bootstraped critical values for the Sargan test.
> Thank you,
> Bernardo Schettini
> *
> *   For searches and help try:
> *
> *
> *

Stas Kolenikov, also found at
Small print: I use this email account for mailing lists only.

*   For searches and help try:

© Copyright 1996–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index