Learn R Programming

plm (version 1.5-12)

vcovNW: Newey and West(1987) Robust Covariance Matrix Estimator

Description

Nonparametric robust covariance matrix estimators a la Newey and West for panel models with serial correlation.

Usage

"vcovNW"(x, type = c("HC0", "sss", "HC1", "HC2", "HC3", "HC4"), maxlag=NULL, wj=function(j, maxlag) 1-j/(maxlag+1), ...)

Arguments

x
an object of class "plm"
type
one of "HC0", "sss", "HC1", "HC2", "HC3","HC4",
maxlag
either NULL or a positive integer specifying the maximum lag order before truncation
wj
weighting function to be applied to lagged terms,
...
further arguments

Value

An object of class "matrix" containing the estimate of the covariance matrix of coefficients.

Details

vcovNW is a function for estimating a robust covariance matrix of parameters for a panel model according to the Newey and West (1987) method. The function works as a restriction of the Driscoll and Kraay (1998) covariance to no cross-sectional correlation.

Weighting schemes are analogous to those in vcovHC in package sandwich and are justified theoretically (although in the context of the standard linear model) by MacKinnon and White (1985) and Cribari-Neto (2004) (see Zeileis (2004)).

The main use of vcovNW is to be an argument to other functions, e.g. for Wald-type testing: as vcov to coeftest(), waldtest() and other methods in the lmtest package; and as vcov to linearHypothesis() in the car package (see the examples). Notice that the vcov argument may be supplied a function (which is the safest) or a matrix (see Zeileis (2004), 4.1-2 and examples below).

References

Newey, W.K. & West, K.D. (1986) A simple, positive semi-definite, heteroskedasticity and autocorrelationconsistent covariance matrix. Econometrica 55(3), pp. 703--708.

Examples

Run this code
library(lmtest)
library(car)
data("Produc", package="plm")
zz <- plm(log(gsp)~log(pcap)+log(pc)+log(emp)+unemp, data=Produc, model="pooling")
## standard coefficient significance test
coeftest(zz)
## NW robust significance test, default
coeftest(zz, vcov=vcovNW)
## idem with parameters, pass vcov as a function argument
coeftest(zz, vcov=function(x) vcovNW(x, type="HC1", maxlag=4))
## joint restriction test
waldtest(zz, update(zz, .~.-log(emp)-unemp), vcov=vcovNW)
## test of hyp.: 2*log(pc)=log(emp)
linearHypothesis(zz, "2*log(pc)=log(emp)", vcov=vcovNW)

Run the code above in your browser using DataLab