A set of functions implementing a class of kernel-based heteroskedasticity
and autocorrelation consistent (HAC) covariance matrix estimators
as introduced by Andrews (1991).
Usage
weave(x, order.by = NULL, prewhite = FALSE, C = NULL,
method = c("truncate", "smooth"), acf = isoacf, adjust = FALSE,
diagnostics = FALSE, sandwich = TRUE, tol = 1e-7, data = list(), ...)
weightsLumley(x, order.by = NULL, C = NULL,
method = c("truncate", "smooth"), acf = isoacf, tol = 1e-7, data = list(), ...)
Arguments
x
a fitted model object.
order.by
Either a vector z or a formula with a single explanatory
variable like ~ z. The observations in the model
are ordered by the size of z. If set to NULL (the
default) the observations are assumed to be ordered (e.g., a
time series).
prewhite
logical or integer. Should the estimating functions
be prewhitened? If TRUE or greater than 0 a VAR model of
order as.integer(prewhite) is fitted via ar with
method "ols" and demean = FALSE.
C
numeric. The cutoff constant C is by default
4 for method "truncate" and 1 for method "smooth".
method
a character specifying the method used, see details.
acf
a function that computes the autocorrelation function of
a vector, by default isoacf is used.
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 the number of estimated parameters.
diagnostics
logical. Should additional model diagnostics be returned?
See vcovHAC for details.
sandwich
logical. Should the sandwich estimator be computed?
If set to FALSE only the middle matrix is returned.
tol
numeric. Weights that exceed tol are used for computing
the covariance matrix, all other weights are treated as 0.
data
an optional data frame containing the variables in the order.by
model. By default the variables are taken from the environment which
the function is called from.
...
currently not used.
Details
weave is a convenience interface to vcovHAC using
weightsLumley: first a weights function is defined and then vcovHAC
is called.
Both weighting methods are based on some estimate of the autocorrelation
function r (as computed by acf) of the residuals of
the model x. The weights for the "truncate" method are
I{n * r ** 2 > C}
and the weights for the "smooth" method are
min{1, C * n * r ** 2}
where n is the number of observations in the model an C is the truncation
constant C.
Further details can be found in Lumley & Heagerty (1999).
Value
weave returns the same type of object as vcovHAC
which is typically just the covariance matrix.
weightsLumley returns a vector of weights.
References
Lumley T & Heagerty P (1999),
Weighted Empirical Adaptive Variance Estimators for Correlated Data Regression.
Journal of the Royal Statistical Society B, 61,
459–477.
See Also
vcovHAC, weightsAndrews,
kernHAC
Examples
x <- sin(1:100)
y <- 1 + x + rnorm(100)
fm <- lm(y ~ x)
weave(fm)
vcov(fm)