A set of functions implementing a class of kernel-based heteroskedasticity and autocorrelation consistent (HAC) covariance matrix estimators as introduced by Andrews (1991).
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(), …)
a fitted model object.
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).
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
.
numeric. The cutoff constant C
is by default
4 for method "truncate"
and 1 for method "smooth"
.
a character specifying the method used, see details.
a function that computes the autocorrelation function of
a vector, by default isoacf
is used.
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.
logical. Should additional model diagnostics be returned?
See vcovHAC
for details.
logical. Should the sandwich estimator be computed?
If set to FALSE
only the middle matrix is returned.
numeric. Weights that exceed tol
are used for computing
the covariance matrix, all other weights are treated as 0.
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.
weave
returns the same type of object as vcovHAC
which is typically just the covariance matrix.
weightsLumley
returns a vector of weights.
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 \(\rho\) (as computed by acf
) of the residuals of
the model x
. The weights for the "truncate"
method are
$$I\{n \rho^2 > C\}$$
and the weights for the "smooth"
method are
$$\min\{1, C n \rho^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).
Lumley T & Heagerty P (1999), Weighted Empirical Adaptive Variance Estimators for Correlated Data Regression. Journal of the Royal Statistical Society B, 61, 459--477.
# NOT RUN {
x <- sin(1:100)
y <- 1 + x + rnorm(100)
fm <- lm(y ~ x)
weave(fm)
vcov(fm)
# }
Run the code above in your browser using DataLab