Wooldridge first--difference--based test for AR(1) errors in levels or first--differenced panel models

First--differencing--based test of serial correlation for (the idiosyncratic component of) the errors in either levels or first--differenced panel models.

pwfdtest(x, ...)

# S3 method for formula pwfdtest(x, data, ..., h0 = c("fd", "fe"))

# S3 method for panelmodel pwfdtest(x, ..., h0 = c("fd", "fe"))


an object of class formula or a "fd"-model (plm object),

further arguments to be passed on to vcovHC (see Details and Examples).


a data.frame,


the null hypothesis: one of "fd", "fe",


As WOOL:10;textualplm, Sec. 10.6.3 observes, if the idiosyncratic errors in the model in levels are uncorrelated (which we label hypothesis "fe"), then the errors of the model in first differences (FD) must be serially correlated with \(cor(\hat{e}_{it}, \hat{e}_{is}) = -0.5\) for each \(t,s\). If on the contrary the levels model's errors are a random walk, then there must be no serial correlation in the FD errors (hypothesis "fd"). Both the fixed effects (FE) and the first--differenced (FD) estimators remain consistent under either assumption, but the relative efficiency changes: FE is more efficient under "fe", FD under "fd".

Wooldridge (ibid.) suggests basing a test for either hypothesis on a pooled regression of FD residuals on their first lag: \(\hat{e}_{i,t}=\alpha + \rho \hat{e}_{i,t-1} + \eta_{i,t}\). Rejecting the restriction \(\rho = -0.5\) makes us conclude against the null of no serial correlation in errors of the levels equation ("fe"). The null hypothesis of no serial correlation in differenced errors ("fd") is tested in a similar way, but based on the zero restriction on \(\rho\) (\(\rho = 0\)). Rejecting "fe" favours the use of the first--differences estimator and the contrary, although it is possible that both be rejected.

pwfdtest estimates the fd model (or takes an fd model as input for the panelmodel interface) and retrieves its residuals, then estimates an AR(1) pooling model on them. The test statistic is obtained by applying a F test to the latter model to test the relevant restriction on \(\rho\), setting the covariance matrix to vcovHC with the option method="arellano" to control for serial correlation.

Unlike the pbgtest and pdwtest, this test does not rely on large--T asymptotics and has therefore good properties in ''short'' panels. Furthermore, it is robust to general heteroskedasticity. The "fe" version can be used to test for error autocorrelation regardless of whether the maintained specification has fixed or random effects @see @DRUK:03plm.


An object of class "htest".



WOOL:02plm Sec. 10.6.3, pp. 282--283.

WOOL:10plm Sec. 10.6.3, pp. 319--320

See Also

pdwtest, pbgtest, pwartest,

  • pwfdtest
  • pwfdtest.formula
  • pwfdtest.panelmodel
data("EmplUK" , package = "plm")
pwfdtest(log(emp) ~ log(wage) + log(capital), data = EmplUK)
pwfdtest(log(emp) ~ log(wage) + log(capital), data = EmplUK, h0 = "fe")

# pass argument 'type' to vcovHC used in test
pwfdtest(log(emp) ~ log(wage) + log(capital), data = EmplUK, type = "HC3", h0 = "fe")

# same with panelmodel interface
mod <- plm(log(emp) ~ log(wage) + log(capital), data = EmplUK, model = "fd")
pwfdtest(mod, h0 = "fe")
pwfdtest(mod, type = "HC3", h0 = "fe")

# }
Documentation reproduced from package plm, version 2.2-5, License: GPL (>= 2)

Community examples

Looks like there are no examples yet.