A set of functions implementing weighted empirical adaptive variance estimation (WEAVE) as introduced by Lumley and Heagerty (1999). This is implemented as a special case of the general class of kernel-based heteroscedasticity and autocorrelation consistent (HAC) covariance matrix estimators as introduced by Andrews (1991), using a special choice of weights.

```
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(), ...)

`weave`

returns the same type of object as `vcovHAC`

which is typically just the covariance matrix.

`weightsLumley`

returns a vector of weights.

- 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.

`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.

`vcovHAC`

, `weightsAndrews`

,
`kernHAC`

```
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