Statalist


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

st: RE: xtdpd vs. xtabond2 discrepancy


From   "David Roodman ([email protected])" <[email protected]>
To   <[email protected]>, <[email protected]>
Subject   st: RE: xtdpd vs. xtabond2 discrepancy
Date   Wed, 13 Jan 2010 17:07:03 -0500

I think the remaining discrepency between xtdpd in xtabond2 in the
standard errors only occurs if you do one-step, non-robust estimation,
which is rare. My guess is that there is a problem with xtdpd, but it is
hard to be sure. With robust errors, they agree:

webuse abdata, clear
xtabond2 n L.n, gmm(n, laglimits(2 .)) h(2) robust
xtdpd n L.n, dgmm(n, lagrange(2 .)) lgmm(n, lag(1)) vce(robust)

As a check, I ran a non-robust estimate in DPD for Ox, which was written
in collaboration with Arellano and Bond. Problem with that is that in
fact I think DPD for Ox *definitely* has a bug that multiplies the
standard errors by sqrt(2) in one-step, non-robust, system GMM
estimation. The old ado version of my program has an undocumented
option, dpds2, that mimics that bug in order to get an exact match.

So these do not agree: 

xtabond2 n L.n, gmm(n, laglimits(2 .)) h(2)
xtdpd n L.n, dgmm(n, lagrange(2 .)) lgmm(n, lag(1))

But this:

xtabond2 n L.n, gmm(n, laglimits(2 .)) h(2) dpds2 nomata

exactly matches DPD for Ox, which gives me some confidence in xtabond2.
Here is the output from xtabond2 and DPD for Ox in this case:

. xtabond2 n L.n, gmm(L.n) h(2) small dpds2 nomata
Building GMM instruments..
Estimating.
Performing specification tests.

Dynamic panel-data estimation, one-step system GMM
------------------------------------------------------------------------
------
Group variable: id                              Number of obs      =
891
Time variable : year                            Number of groups   =
140
Number of instruments = 36                      Obs per group: min =
6
F(0, 890)     =    804.89                                      avg =
6.36
Prob > F      =     0.000                                      max =
8
------------------------------------------------------------------------
------
           n |      Coef.   Std. Err.      t    P>|t|     [95% Conf.
Interval]
-------------+----------------------------------------------------------
------
           n |
         L1. |   1.170374   .0412532    28.37   0.000      1.08941
1.251339
             |
       _cons |   -.228391   .0451547    -5.06   0.000    -.3170131
-.139769
------------------------------------------------------------------------
------


Ox version 4.1 (Windows) (C) J.A. Doornik, 1994-2006
This version may be used for academic research and teaching only
DPD package version 1.24, object created on 13-01-2010

DPD( 1) Modelling n by 1-step (using abdata.in7)

                  ----   1-step estimation using DPD ----
                  Coefficient  Std.Error  t-value  t-prob
Dn(-1)                1.17037    0.04125     28.4   0.000
Constant            -0.228391    0.04515    -5.06   0.000


-----Original Message-----
From: [email protected] [mailto:[email protected]] 
Sent: Wednesday, January 13, 2010 12:17 PM
To: [email protected]
Subject: Re: xtdpd vs. xtabond2 discrepancy

You need to add an h(2) option to -xtabond2-.  The following
will produce the same point estimates:

webuse abdata, clear
xtabond2 n L.n, gmm(n, laglimits(2 .)) small h(2)
xtdpd n L.n, dgmm(n, lagrange(2 .)) lgmm(n, lag(1))

The standard errors are still different though.  Does anybody
know why?

Julian

---- Original message ----
>From 	  John Bates <[email protected]>
>To 	  Stata <[email protected]>
>Subject 	  st: xtdpd vs. xtabond2 discrepancy
>Date 	  Tue, 5 Jan 2010 11:22:44 -0800 (PST)
>
> Hi,
>
> I get different answers when using -xtdpd- vs. -xtabond2-
for System GMM.  First, I show that this is not a problem for
difference GMM:
>
> webuse abdata, clear
> * The three commands below all produce identical estimates
for difference GMM
> xtabond n, lags(1) noconst
> xtabond2 n L.n, gmm(n, laglimits(2 .)) nolevel small
> xtdpd n L.n, dgmm(n, lagrange(2 .)) noconstant
>
>
> But, when I do system GMM I get different answers:
>
> xtabond2 n L.n, gmm(n, laglimits(2 .)) small
> xtdpd n L.n, dgmm(n, lagrange(2 .)) lgmm(n, lag(1))
>
> (I get different answers regardless of whether or not I
specify the noconstant option.)  Note that in the system GMM
example, both commands report they are using 36 instruments
and, in particular, report that they are using the exact same
instruments for both the levels and difference equations.  In
this simple example the answers only differ at the second
decimal point, but I've run other (more complicated)
variations that have much larger differences (>20%).  For example:
>
> xtabond2 n L.n w ys k, gmm(n, laglimits(2 .)) iv(w ys k) small
> xtdpd n L.n w ys k, dgmm(n, lagrange(2 .)) lgmm(n, lag(1))
iv(w ys k)
>
>
> What accounts for these differences?  I don't know which
command's output to use.  I am running the latest update of
Stata 11 and have the latest version of -xtabond2- (2.8.2).
>
> Thanks,
> John

*
*   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/



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