Estimation of sandwich covariances a la Beck and Katz (1995) for panel data.
1 2 3 4 5
a fitted model object.
a variable indicating the clustering of observations,
a variable, list/data.frame, or formula indicating the
aggregation within time periods. By default
logical. For unbalanced panels. Indicating whether the meat should be estimated pair- or casewise.
logical. Should the sandwich estimator be computed?
If set to
logical. Should the covariance matrix be fixed to be positive semi-definite in case it is not?
logical. Calculate the meat via the
Kronecker-product, shortening the computation time for small
matrices. For large matrices, set
arguments passed to the
vcovPC is a function for estimating Beck and Katz (1995)
panel-corrected covariance matrix.
meatPC is the work horse for estimating
the meat of Beck and Katz (1995) covariance matrix estimators.
vcovPC is a wrapper calling
Following Bailey and Katz (2011), there are two alternatives to
estimate the meat for unbalanced panels.
pairwise = FALSE, a balanced subset of the panel is used,
pairwise = TRUE, a pairwise balanced sample is
order.by specification can be made in a number of ways:
Either both can be a single variable or
cluster can be a
data.frame of two variables.
expand.model.frame works for the model object
cluster (and potentially additionally
order.by) can also be
formula. By default (
cluster = NULL, order.by = NULL),
attr(x, "cluster") and
attr(x, "order.by") are checked and
used if available. If not, every observation is assumed to be its own cluster,
and observations within clusters are assumed to be ordered accordingly.
If the number of observations in the model
x is smaller than in the
data due to
NA processing, then the same
can be applied to
cluster if necessary (and
A matrix containing the covariance matrix estimate.
Bailey D, Katz JN (2011). “Implementing Panel-Corrected Standard Errors in R: The pcse Package”, Journal of Statistical Software, Code Snippets, 42(1), 1–11. http://www.jstatsoft.org/v42/c01/
Beck N, Katz JN (1995). “What To Do (and Not To Do) with Time-Series-Cross-Section Data in Comparative Politics”, American Political Science Review, 89(3), 634–647. http://www.jstor.org/stable/2082979
Berger S, Graham N, Zeileis A (2017). “Various Versatile Variances: An Object-Oriented Implementation of Clustered Covariances in R.” Technical Report 2017-12, Working Papers in Economics and Statistics, Research Platform Empirical and Experimental Economics, Universitaet Innsbruck. http://EconPapers.RePEc.org/RePEc:inn:wpaper:2017-12.
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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
## Petersen's data data("PetersenCL", package = "sandwich") m <- lm(y ~ x, data = PetersenCL) ## Beck and Katz (1995) standard errors ## balanced panel sqrt(diag(vcovPC(m, cluster = ~ firm + year))) ## unbalanced panel PU <- subset(PetersenCL, !(firm == 1 & year == 10)) pu_lm <- lm(y ~ x, data = PU) sqrt(diag(vcovPC(pu_lm, cluster = ~ firm + year, pairwise = TRUE))) sqrt(diag(vcovPC(pu_lm, cluster = ~ firm + year, pairwise = FALSE))) ## the following specifications of cluster/order.by are equivalent vcovPC(m, cluster = ~ firm + year) vcovPC(m, cluster = PetersenCL[, c("firm", "year")]) vcovPC(m, cluster = ~ firm, order.by = ~ year) vcovPC(m, cluster = PetersenCL$firm, order.by = PetersenCL$year) ## these are also the same when observations within each ## cluster are already ordered vcovPC(m, cluster = ~ firm) vcovPC(m, cluster = PetersenCL$firm)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.