phtest function

Hausman Test for Panel Models

Hausman Test for Panel Models

Specification test for panel models.

phtest(x, ...) ## S3 method for class 'formula' phtest( x, data, model = c("within", "random"), effect = c("individual", "time", "twoways"), method = c("chisq", "aux"), index = NULL, vcov = NULL, ... ) ## S3 method for class 'panelmodel' phtest(x, x2, ...)

Arguments

  • x: an object of class "panelmodel" or "formula",
  • ...: further arguments to be passed on (currently none).
  • data: a data.frame,
  • model: a character vector containing the names of two models (length(model) must be 2),
  • effect: a character specifying the effect to be introduced to both models, one of "individual", "time", or "twoways" (only for formula method),
  • method: one of "chisq" or "aux",
  • index: an optional vector of index variables,
  • vcov: an optional covariance function,
  • x2: an object of class "panelmodel" (only for panelmodel method/interface),

Returns

An object of class "htest".

Details

The Hausman test (sometimes also called Durbin--Wu--Hausman test) is based on the difference of the vectors of coefficients of two different models. The panelmodel method computes the original version of the test based on a quadratic form \insertCite HAUS:78plm. The formula method, if method = "chisq" (default), computes the original version of the test based on a quadratic form; if method ="aux" then the auxiliary-regression-based version as in \insertCite WOOL:10;textualplm, Sec.10.7.3. Only the latter can be robustified by specifying a robust covariance estimator as a function through the argument vcov (see Examples ).

The effect argument is only relevant for the formula method/interface and is then applied to both models. For the panelmodel method/interface, the test is run with the effects of the already estimated models.

The equivalent tests in the one-way case using a between model (either "within vs. between" or "random vs. between") \insertCite @see @HAUS:TAYL:81 or @BALT:13 Sec.4.3plm can also be performed by phtest, but only for test = "chisq", not for the regression-based test. NB: These equivalent tests using the between model do not extend to the two-ways case. There are, however, some other equivalent tests, \insertCite @see @KANG:85 or @BALT:13 Sec.4.3.7plm, but those are unsupported by phtest.

Examples

data("Gasoline", package = "plm") form <- lgaspcar ~ lincomep + lrpmg + lcarpcap wi <- plm(form, data = Gasoline, model = "within") re <- plm(form, data = Gasoline, model = "random") phtest(wi, re) phtest(form, data = Gasoline) phtest(form, data = Gasoline, effect = "time") # Regression-based Hausman test phtest(form, data = Gasoline, method = "aux") # robust Hausman test with vcov supplied as a function and # with additional parameters phtest(form, data = Gasoline, method = "aux", vcov = vcovHC) phtest(form, data = Gasoline, method = "aux", vcov = function(x) vcovHC(x, method="white2", type="HC3"))

References

\insertRef HAUS:78plm

\insertRef HAUS:TAYL:81plm

\insertRef KANG:85plm

\insertRef WOOL:10plm

\insertRef BALT:13plm

Author(s)

Yves Croissant, Giovanni Millo