mtest function

Arellano--Bond Test of Serial Correlation

Arellano--Bond Test of Serial Correlation

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

References

\insertAllCited

See Also

pgmm(), vcovHC.pgmm()

Author(s)

Yves Croissant