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]

st: correct syntax for xtdpdsys

From   "J. Dieleman" <>
To   "''" <>
Subject   st: correct syntax for xtdpdsys
Date   Sat, 8 Oct 2011 23:06:34 +0000


I'm interested in being sure that I am correctly using the xtdpdsys syntax.  Below are reproducible code and a number of short statements regarding what I think the code is doing.  I want to be sure that my intuition matches what is really happening.  The xtdpdsys documentation isn't 100% clear about what should be in included in the "indepvars" portion of the command.  Further, David Roodman's xtabond2 which also implements difference- and system-GMM is clearer on this point (Stata Journal, 9:1), but it seems that the two codes' syntaxes depart in some very important and non-trivial ways.  Any confirmation that my intuition regarding the syntax is correct or a correction where I may be miss-interpreting something would be greatly appreciated.  Thanks so much.

(I'm using Stata 11.2 for Windows (64-bit x86-64), born 01 Sep 2011.)

Primary concern:
xtabond2 - most variables on the right hand of the equation will enter the syntax twice.
xtdpdsys - right hand side variables should only enter the equation once.
QUESTION (1)  Is this correct?

Examples code:

	clear all
	ssc install xtabond2
	webuse abdata

	xtdpdsys n w, two vce(robust)
	xtabond2 n l.n w, gmm(l.n) iv(w, eq(dif)) h(2) two robust

	xtdpdsys n, pre(w) two vce(robust)
	xtabond2 n l.n w, gmm(l.n w) h(2) two robust

	xtdpdsys n, endo(w) two vce(robust)
	xtabond2 n l.n w, gmm(l.n l.w) h(2) two robust

	** CASE #4 
	xtdpdsys n w, endo(w) two vce(robust)


Each pair of statements generates identical results using two-step system-GMM, reporting Windmeijer corrected  robust standard errors. 

Cases #1-#3 demonstrate the three primary ways to categorize variable W.  W needs to be ex ante identified as (strictly) exogenous, predetermined (weakly exogenous), or endogenous.

Case #4 borrows syntax from xtabond2, presumably incorrectly.  In this case, W is seemingly identified as exogenous and endogenous, with the differenced equation being instrumented with both lags and differences of W.  Since the differenced W is "perfectly" instrumented by itself, it is certainly wrong to believe it is being treated as endogenous.  If W is truly endogenous, case #4 will not have controlled for this and the results will be biased as the differenced W and differenced residual will be correlated.  Lags of W are also used to instrument the lag of N.

My ad hoc conclusion from looking at the output of these regressions and reading the Stata manual is that if the goal is to consider W as predetermined or endogenous, it should NOT enter the xtdpdsys syntax to the left of the comma.  All independent variables that enter the xtdpdsys syntax to the left of the comma (the area the xtdpdsys documentation reserves for indepvars) will be considered exogenous.  Variables that enter the left and right side of the comma are considered exogenous, but also have additional gmm-style instruments included in the equations.  

QUESTION (2)  Is this interpretation of the xtdpdsys syntax and intuition correct?
QUESTION (3)  Is there ever a case where intuitively or econometrically it would make sense to include a variable to the left and right of a comma when using the xtdpdsys command?

Thanks so much for your help.

Joe Dieleman

*   For searches and help try:

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