vcovPL {sandwich} | R Documentation |
Estimation of sandwich covariances a la Newey-West (1987) and Driscoll and Kraay (1998) for panel data.
vcovPL(x, cluster = NULL, order.by = NULL, kernel = "Bartlett", sandwich = TRUE, fix = FALSE, ...) meatPL(x, cluster = NULL, order.by = NULL, kernel = "Bartlett", lag = "NW1987", bw = NULL, adjust = TRUE, ...)
x |
a fitted model object. |
cluster |
a variable indicating the clustering of observations
or a |
order.by |
a variable indicating the aggregation within time periods. |
kernel |
a character specifying the kernel used. All kernels
described in Andrews (1991) are supported, see |
lag |
character or numeric, indicating the lag length used.
Three rules of thumb ( |
bw |
numeric. The bandwidth of the kernel which by default corresponds
to |
sandwich |
logical. Should the sandwich estimator be computed?
If set to |
fix |
logical. Should the covariance matrix be fixed to be positive semi-definite in case it is not? |
adjust |
logical. Should a finite sample adjustment be made? This amounts to multiplication with n/(n - k) where n is the number of observations and k is the number of estimated parameters. |
... |
arguments passed to the |
vcovPL
is a function for estimating the Newey-West (1987) and
Driscoll and Kraay (1998) covariance matrix.
Driscoll and Kraay (1998) apply a Newey-West type correction to the
sequence of cross-sectional averages of the moment conditions (see
Hoechle (2007)). For large T (and regardless of the length of the
cross-sectional dimension), the Driscoll and Kraay (1998)
standard errors are robust to general forms of cross-sectional and
serial correlation (Hoechle (2007)).
The Newey-West (1978) covariance matrix restricts the Driscoll and
Kraay (1998) covariance matrix to no cross-sectional correlation.
The function meatPL
is the work horse for estimating
the meat of Newey-West (1978) and Driscoll and Kraay (1998)
covariance matrix estimators. vcovPL
is a wrapper calling
sandwich
and bread
(Zeileis 2006).
Default lag length is the "NW1987"
.
For lag = "NW1987"
, the lag length is chosen from the heuristic
floor[T^{(1/4)}]. More details on lag length selection in Hoechle (2007).
For lag = "NW1994"
,
the lag length is taken from the first step of Newey and West's
(1994) plug-in procedure.
A matrix containing the covariance matrix estimate.
Andrews DWK (1991). “Heteroscedasticity and Autocorrelation Consistent Covariance Matrix Estimation”, Econometrica, 817–858.
Driscoll JC & Kraay AC (1998). “Consistent Covariance Matrix Estimation with Spatially Dependent Panel Data”, The Review of Economics and Statistics, 80(4), 549–560.
Hoechle D (2007). “Robust Standard Errors for Panel Regressions with Cross-Sectional Dependence”, Stata Journal, 7(3), 281–312.
Newey WK & West KD (1987). “Hypothesis Testing with Efficient Method of Moments Estimation”, International Economic Review, 777-787.
Newey WK & West KD (1994). “Automatic Lag Selection in Covariance Matrix Estimation”, The Review of Economic Studies, 61(4), 631–653.
White H (1980). “A Heteroskedasticity-Consistent Covariance Matrix Estimator and a Direct Test for Heteroskedasticity”, Econometrica, 817–838. doi: 10.2307/1912934
Zeileis A (2004). “Econometric Computing with HC and HAC Covariance Matrix Estimator”, Journal of Statistical Software, 11(10), 1–17. doi: 10.18637/jss.v011.i10
Zeileis A (2006). “Object-Oriented Computation of Sandwich Estimators”, Journal of Statistical Software, 16(9), 1–16. doi: 10.18637/jss.v016.i09
## Petersen's data data("PetersenCL", package = "sandwich") m <- lm(y ~ x, data = PetersenCL) ## Driscoll and Kraay standard errors ## lag length set to: T - 1 (maximum lag length) ## as proposed by Petersen (2009) sqrt(diag(vcovPL(m, cluster = PetersenCL$firm, lag = "max", adjust = FALSE))) ## lag length set to: floor(4 * (T / 100)^(2/9)) ## rule of thumb proposed by Hoechle (2007) based on Newey & West (1994) sqrt(diag(vcovPL(m, cluster = PetersenCL$firm, lag = "NW1994"))) ## lag length set to: floor(T^(1/4)) ## rule of thumb based on Newey & West (1987) sqrt(diag(vcovPL(m, cluster = PetersenCL$firm, lag = "NW1987")))