To understand the issue let's review what is the so call robust variance-covariance matrix estimates (VCE) and the implied "robust" standard errors. The robustness is meant to allow for violations of homoscedasticity in the cross-sectional dimension or heteroscedasticity. There are various heteroscedastic robust VCE which are known as the Sandwich estimators or heteroscedasticity consistent (HC) standard errors due to their form: $\gamma(X'X)^{-1}\hat{\Omega}(X'X)^{-1}$. Stata by default uses HC1 which uses the residuals just as HC0, but has a degrees of freedom adjustment. However, one can request HC2 or HC3 through the vce option after a compatible command, e.g., reg y x, vce(hc3)
.
However, in the case of unobserved effects models such as the one-way error component (xtreg
) one should not use HC estimators and choose an appropriate VCE which allows for dependence of the error term. These are known as CRVE or cluster robust Variance-Covariance estimators. Stata xtreg
and xtivreg
and similar commands are for short-panels one-way error models (one can include the temporal intercept for two-way error models manually). Therefore, independence in the temporal dimension might be a valid assumption, but rarely we can get away with independence through the cross-sectional dimension and thus one should always cluster at least at the panel id level. Stata does not allow for two-way clustering, but the most important one for short-panels should be the cl(pid)
option. Stata's CRVE implementation is known as Roger's standard errors and is one of the first estimators... in the future newer solution might be implemented.
In the case of fixed effects models, one should note that the coefficients can be estimated through the within estimator (xtreg
or LSDV: reg y x i.pid
). The asymptotic standard errors are correct for the LSDV and and for the within after correcting the degree of freedom (which all implementations should do). However, HC standard errors are inconsistent for the fixed effects model. Therefore, it is the norm and what everyone should do to use cluster standard errors as oppose to some sandwich estimator. Stata took the decision to change the robust
option after xtreg y x, fe
to automatically give you xtreg y x, fe cl(pid)
in order to make it more fool-proof and people making a mistake. CRVE are heteroscedastic, autocorrelation, and cluster robust.
As an aside, due to the small size corrections one obtains different cluster robust standard errors with reg y x i.pid, cl(pid)
and xtreg y x, fe
or equivalent xtreg y x, fe vce(pid)
. The correct ones are the latter ones.
PD:
For REIV and FEIV, most implementations including Stata when using 2SLS use a GLS Anova method which by default is the Swamy-Arora which uses the residuals from the between and within models rather than P2SLS.
References:
Cameron, Colin A., and Douglas L. Miller. 2015. "A Practitioner’s Guide to Cluster-Robust Inference." Journal of Human Resources 50 (2): 317–372. doi:10.3368/jhr.50.2.317.
Stock, J. H., and M. W. Watson. 2008. Heteroskedasticity-robust standard errors for fixed effects panel data regression. Econometrica 76: 155–174.
xtreg, fe
used to adjust the VCE for the within transformation when thecluster()
option was specified. The cluster-robust VCE no longer adjusts unless thedfadj
is specified. $\endgroup$