Test of serial correlation for models estimated by GMM
mtest(object,...)## S3 method for class 'pgmm'mtest(object, order =1L, vcov =NULL,...)
Arguments
object: an object of class "pgmm",
...: further arguments (currently unused).
order: integer: the order of the serial correlation,
vcov: a matrix of covariance for the coefficients or a function to compute it,
Returns
An object of class "htest".
Details
The Arellano--Bond test is a test of correlation based on the residuals of the estimation. By default, the computation is done with the standard covariance matrix of the coefficients. A robust estimator of a covariance matrix can be supplied with the vcov argument.
Note that mtest computes like DPD for Ox and xtabond do, i.e., uses for two-steps models the one-step model's residuals which were used to construct the efficient two-steps estimator, see \insertCite DOOR:AREL:BOND:12plm, p. 32, footnote 7; As noted by \insertCite AREL:BOND:91plm (p. 282), the m statistic is rather flexible and can be defined with any consistent GMM estimator which gives leeway for implementation, but the test's asymptotic power depends on the estimator's efficiency. \insertCite AREL:BOND:91plm (see their footnote 9) used DPD98 for Gauss (\insertCite AREL:BOND:98plm) as did \insertCite WIND:05plm (see footnote 10) for the basis of his covariance correction, both with a slightly different implementation. Hence some results for mtest with two-step models diverge from original papers, see examples below.
Examples
data("EmplUK", package ="plm")# Arellano/Bond 1991, Table 4, column (a1)ab.a1 <- pgmm(log(emp)~ lag(log(emp),1:2)+ lag(log(wage),0:1)+ lag(log(capital),0:2)+ lag(log(output),0:2)| lag(log(emp),2:99), data = EmplUK, effect ="twoways", model ="onestep")mtest(ab.a1,1L)mtest(ab.a1,2L, vcov = vcovHC)# Windmeijer (2005), table 2, onestep with corrected std. errab.b.onestep <- pgmm(log(emp)~ lag(log(emp),1:2)+ lag(log(wage),0:1)+ log(capital)+ lag(log(output),0:1)| lag(log(emp),2:99), data = EmplUK, effect ="twoways", model ="onestep")mtest(ab.b.onestep,1L, vcov = vcovHC)mtest(ab.b.onestep,2L, vcov = vcovHC)# Arellano/Bond 1991, Table 4, column (a2)ab.a2 <- pgmm(log(emp)~ lag(log(emp),1:2)+ lag(log(wage),0:1)+ lag(log(capital),0:2)+ lag(log(output),0:2)| lag(log(emp),2:99), data = EmplUK, effect ="twoways", model ="twosteps")mtest(ab.a2,1L)mtest(ab.a2,2L)# while a la Arellano/Bond (1991) -0.434