| weightsAndrews | R Documentation |
A set of functions implementing a class of kernel-based heteroscedasticity and autocorrelation consistent (HAC) covariance matrix estimators as introduced by Andrews (1991).
kernHAC(x, order.by = NULL, prewhite = 1, bw = bwAndrews,
kernel = c("Quadratic Spectral", "Truncated", "Bartlett", "Parzen", "Tukey-Hanning"),
approx = c("AR(1)", "ARMA(1,1)"), adjust = TRUE, diagnostics = FALSE,
sandwich = TRUE, ar.method = "ols", tol = 1e-7, data = list(), verbose = FALSE, ...)
weightsAndrews(x, order.by = NULL, bw = bwAndrews,
kernel = c("Quadratic Spectral", "Truncated", "Bartlett", "Parzen", "Tukey-Hanning"),
prewhite = 1, ar.method = "ols", tol = 1e-7, data = list(), verbose = FALSE, ...)
bwAndrews(x, order.by = NULL, kernel = c("Quadratic Spectral", "Truncated",
"Bartlett", "Parzen", "Tukey-Hanning"), approx = c("AR(1)", "ARMA(1,1)"),
weights = NULL, prewhite = 1, ar.method = "ols", data = list(), ...)
x |
a fitted model object. For |
order.by |
Either a vector |
prewhite |
logical or integer. Should the estimating functions
be prewhitened? If |
bw |
numeric or a function. The bandwidth of the kernel (corresponds to the
truncation lag). If set to to a function (the default is |
kernel |
a character specifying the kernel used. All kernels used are described in Andrews (1991). |
approx |
a character specifying the approximation method if the
bandwidth |
adjust |
logical. Should a finite sample adjustment be made?
This amounts to multiplication with |
diagnostics |
logical. Should additional model diagnostics be returned?
See |
sandwich |
logical. Should the sandwich estimator be computed?
If set to |
ar.method |
character. The |
tol |
numeric. Weights that exceed |
data |
an optional data frame containing the variables in the |
verbose |
logical. Should the bandwidth parameter used be printed? |
... |
further arguments passed to |
weights |
numeric. A vector of weights used for weighting the estimated
coefficients of the approximation model (as specified by |
kernHAC is a convenience interface to vcovHAC using
weightsAndrews: first a weights function is defined and then vcovHAC
is called.
The kernel weights underlying weightsAndrews
are directly accessible via the function kweights and require
the specification of the bandwidth parameter bw. If this is not specified
it can be chosen adaptively by the function bwAndrews (except for the
"Truncated" kernel). The automatic bandwidth selection is based on
an approximation of the estimating functions by either AR(1) or ARMA(1,1) processes.
To aggregate the estimated parameters from these approximations a weighted sum
is used. The weights in this aggregation are by default all equal to 1
except that corresponding to the intercept term which is set to 0 (unless there
is no other variable in the model) making the covariance matrix scale invariant.
Further details can be found in Andrews (1991).
The estimator of Newey & West (1987) is a special case of the class of estimators
introduced by Andrews (1991). It can be obtained using the "Bartlett"
kernel and setting bw to lag + 1. A convenience interface is
provided in NeweyWest.
kernHAC returns the same type of object as vcovHAC
which is typically just the covariance matrix.
weightsAndrews returns a vector of weights.
bwAndrews returns the selected bandwidth parameter.
Andrews DWK (1991). “Heteroskedasticity and Autocorrelation Consistent Covariance Matrix Estimation.” Econometrica, 59, 817–858.
Newey WK & West KD (1987). “A Simple, Positive Semi-Definite, Heteroskedasticity and Autocorrelation Consistent Covariance Matrix.” Econometrica, 55, 703–708.
vcovHAC, NeweyWest, weightsLumley,
weave
curve(kweights(x, kernel = "Quadratic", normalize = TRUE),
from = 0, to = 3.2, xlab = "x", ylab = "k(x)")
curve(kweights(x, kernel = "Bartlett", normalize = TRUE),
from = 0, to = 3.2, col = 2, add = TRUE)
curve(kweights(x, kernel = "Parzen", normalize = TRUE),
from = 0, to = 3.2, col = 3, add = TRUE)
curve(kweights(x, kernel = "Tukey", normalize = TRUE),
from = 0, to = 3.2, col = 4, add = TRUE)
curve(kweights(x, kernel = "Truncated", normalize = TRUE),
from = 0, to = 3.2, col = 5, add = TRUE)
## fit investment equation
data(Investment)
fm <- lm(RealInv ~ RealGNP + RealInt, data = Investment)
## compute quadratic spectral kernel HAC estimator
kernHAC(fm)
kernHAC(fm, verbose = TRUE)
## use Parzen kernel instead, VAR(2) prewhitening, no finite sample
## adjustment and Newey & West (1994) bandwidth selection
kernHAC(fm, kernel = "Parzen", prewhite = 2, adjust = FALSE,
bw = bwNeweyWest, verbose = TRUE)
## compare with estimate under assumption of spheric errors
vcov(fm)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.