Dear Statalisters,

it is the first time I use GMM and xtabond2.
Playing around with the syntax, after reading the paper of Roodman (2009, How to do xtabond2), I recognized that orthogonal is applicable as an option and as an suboption within the gmmstyle() option.

Imagine, for instance, a twoway difference GMM with Windmeijer’s finite-sample correction for the two-step covariance matrix.
I've read in Roodman (2009) that you usually use forward orthogonal deviations transforming instead of differencing if the panel is unbalanced.
Therefore, assuming unbalanced data in a simple model with a predetermined lagged dependent variable (l.y) and two endogenous explanatory variables, x1 and x2, as well as an exogenous time dummy the code would be:
Code:
xtabond2 y l.y x1 x2 year1-year10, gmm(l.y, collapse lag(1 .)) gmm(x1 x2, collapse lag(2. )) iv(year1-10) noleveleq twoway robust orthogonal
While in the previous example orthogonal specified forward orthogonal deviations for the regressors, the following code would additionally specify backward orthogonal deviations for the instruments.
Code:
xtabond2 y l.y x1 x2 year1-year10, gmm(l.y, collapse orthogonal lag(1 .)) gmm(x1 x2, collapse orthogonal lag(2. )) iv(year1-10) noleveleq twoway robust orthogonal
According to Hayakawa (2009) the combination of backward orthogonal deviations for the instruments and forward for the regressors is less biased and more stable than traditional Difference GMM for a standard AR(1) model when T>=10.
However, what exactly does the orthogonal suboption in the gmmstyle() option do?
Applying this to my data I do get very different results using the suboption compared to the example without it. Particularly using the suboption of orthogonal in my gmmystyle() options allows me to NOT reject the Arellano-Bond test for AR(2) in first differences, whereas I have to reject it without the orthogonal suboption.

Thanks for any comments
Best,
Tobias