Skip to content

ENH: Andrews (1991) AR(1) plug-in bandwidth for the kernel covariance estimators #887

Closed

Description

@ZacKienzle2

The kernel estimators in arch.covariance choose their bandwidth by the
Newey and West (1994) procedure, whose pilot lag n = ceil(4 (T/100)^rate)
sets how many autocovariances enter s0 and s(q). The 4 is the value
Newey and West used in their Monte Carlo (Table II), so the bandwidth of a
series depends on that choice.

Andrews (1991, Section 6) gives a plug-in bandwidth with no pilot lag. An
AR(1) fitted to each column gives (rho, sigma^2), and

alpha(1) = sum_a w_a 4 rho_a^2 sigma_a^4 / ((1 - rho_a)^6 (1 + rho_a)^2)
           / sum_a w_a sigma_a^4 / (1 - rho_a)^4
alpha(2) = sum_a w_a 4 rho_a^2 sigma_a^4 / (1 - rho_a)^8
           / sum_a w_a sigma_a^4 / (1 - rho_a)^4

(6.3)-(6.4), with the bandwidth 1.1447 (alpha(1) T)^(1/3) for the Bartlett
kernel, 2.6614 (alpha(2) T)^(1/5) for Parzen and 1.3221 (alpha(2) T)^(1/5)
for the quadratic spectral kernel ((5.3), (6.2)). The kernel constants are
derived in the paper, and everything else is estimated from the data. R's
sandwich::bwAndrews and cointReg::getBandwidthAnd compute it.

Would an option to choose the bandwidth this way be welcome, such as a
bandwidth_method argument on the kernel estimators taking "newey-west"
(the current default) or "andrews"? PhillipsPerron could then use it
for its long-run variance, in place of the 12 (T/100)^(1/4) default lags,
since it already computes the regression residuals the AR(1) would be
fitted to. I can open a pull request if so.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions