A set of functions implementing the Newey & West (1987, 1994) heteroscedasticity and autocorrelation consistent (HAC) covariance matrix estimators.

NeweyWest(x, lag = NULL, order.by = NULL, prewhite = TRUE, adjust = FALSE,
diagnostics = FALSE, sandwich = TRUE, ar.method = "ols", data = list(),
verbose = FALSE)

bwNeweyWest(x, order.by = NULL, kernel = c("Bartlett", "Parzen",
"Quadratic Spectral", "Truncated", "Tukey-Hanning"), weights = NULL,
prewhite = 1, ar.method = "ols", data = list(), ...)

## Arguments

x

a fitted model object. For bwNeweyWest it can also be a score matrix (as returned by estfun) directly.

lag

integer specifying the maximum lag with positive weight for the Newey-West estimator. If set to NULL floor(bwNeweyWest(x, ...)) is used.

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. The default is to use VAR(1) prewhitening.

kernel

a character specifying the kernel used. All kernels used are described in Andrews (1991). bwNeweyWest can only compute bandwidths for "Bartlett", "Parzen" and "Quadratic Spectral".

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.

ar.method

character. The method argument passed to ar for prewhitening (only, not for bandwidth selection).

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.

verbose

logical. Should the lag truncation parameter used be printed?

weights

numeric. A vector of weights used for weighting the estimated coefficients of the approximation model (as specified by approx). By default all weights are 1 except that for the intercept term (if there is more than one variable).

...

currently not used.

## Details

NeweyWest is a convenience interface to vcovHAC using Bartlett kernel weights as described in Newey & West (1987, 1994). The automatic bandwidth selection procedure described in Newey & West (1994) is used as the default and can also be supplied to kernHAC for the Parzen and quadratic spectral kernel. It is implemented in bwNeweyWest which does not truncate its results - if the results for the Parzen and Bartlett kernels should be truncated, this has to be applied afterwards. For Bartlett weights this is implemented in NeweyWest.

To obtain the estimator described in Newey & West (1987), prewhitening has to be suppressed.

## Value

NeweyWest returns the same type of object as vcovHACwhich is typically just the covariance matrix. bwNeweyWest returns the selected bandwidth parameter.

vcovHAC, weightsAndrews, kernHAC

## Examples

## fit investment equation
data(Investment)
fm <- lm(RealInv ~ RealGNP + RealInt, data = Investment)

## Newey & West (1994) compute this type of estimator
NeweyWest(fm)
#>             (Intercept)       RealGNP     RealInt
#> (Intercept) 594.1004817 -0.5617817294 36.04992496
#> RealGNP      -0.5617817  0.0005563172 -0.04815937
#> RealInt      36.0499250 -0.0481593694 13.24912546

## The Newey & West (1987) estimator requires specification
## of the lag and suppression of prewhitening
NeweyWest(fm, lag = 4, prewhite = FALSE)
#>             (Intercept)       RealGNP      RealInt
#> (Intercept) 359.4170681 -0.3115505035 -4.089319305
#> RealGNP      -0.3115505  0.0002805888 -0.005355931
#> RealInt      -4.0893193 -0.0053559312 11.171472998

## bwNeweyWest() can also be passed to kernHAC(), e.g.
## for the quadratic spectral kernel
kernHAC(fm, bw = bwNeweyWest)
#>             (Intercept)       RealGNP     RealInt
#> (Intercept)  794.986166 -0.7562570101 48.19485118
#> RealGNP       -0.756257  0.0007537517 -0.06485461
#> RealInt       48.194851 -0.0648546058 17.58798679