For models with lagged dependent variable: y_it = ρ y_i,t-1 + β X_it + u_i + e_it. FE is biased (Nickell bias). Use Arellano-Bond (difference GMM) or Blundell-Bond (system GMM).
Difference GMM:
xtabond y x1 x2, lags(1) twostep vce(robust)
System GMM (preferred for persistent series): stata panel data exclusive
xtdpdsys y x1 x2, lags(1) twostep vce(robust)
Diagnostics after GMM:
estat sargan // overidentification test (H0: valid)
estat abond // Arellano-Bond AR(2) test (H0: no serial correlation)
When dealing with large panels (large N) where cross-sectional dependence is suspected (e.g., global financial crises affecting all countries), standard clustering is insufficient. Stata offers xtscc (user-written) or manual implementation of Driscoll-Kraay standard errors. For models with lagged dependent variable: y_it =
* ssc install xtscc
xtscc y x1 x2, fe
This produces standard errors that are robust to heteroskedasticity, serial correlation, and cross-sectional dependence simultaneously. System GMM (preferred for persistent series): xtdpdsys y
Want a concise guide to estimating panel models in Stata? Here’s a focused walkthrough with code and tips for fixed-effects and random-effects estimation, model choice, and interpretation.