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

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

 From Bernardo Schettini To statalist@hsphsun2.harvard.edu Subject Re: st: dynamic panel - bootstrapped Sargan and exclusion tests Date Tue, 28 Jun 2011 00:25:47 -0300

Dear Stas, see the program below:

program define boot_sargan, rclass
xtset newid year
xtabond2 y1 l(1/3).(y1 y2 y3), gmm(l.y1 l.y2 l.y3) twostep robust noleveleq
return scalar sargan = e(sargan)
end
bootstrap sargan = r(sargan), reps(10) idcluster(newid) cluster(id): boot_sargan

I have written it in an attempt to bootstrap the Sargan statistic. But
that won't do it, since the model is missespecified under the null
(see Stas comment below). Any clues on how to generate the correct
empirical critical values/p-values? Stas suggested wicked whitening or
pinkening, but I have no idea on how to implement that.

Thank you.

2011/6/24 Stas Kolenikov <skolenik@gmail.com>:
> 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
> <bernardo.schettini@gmail.com> 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:
>> *   http://www.stata.com/help.cgi?search
>> *   http://www.stata.com/support/statalist/faq
>> *   http://www.ats.ucla.edu/stat/stata/
>>
>
>
>
> --
> Stas Kolenikov, also found at http://stas.kolenikov.name
> Small print: I use this email account for mailing lists only.
>
> *
> *   For searches and help try:
> *   http://www.stata.com/help.cgi?search
> *   http://www.stata.com/support/statalist/faq
> *   http://www.ats.ucla.edu/stat/stata/
>

*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/