jtest performs the Davidson-MacKinnon J test for comparing non-nested
models.
Usage
jtest(formula1, formula2, data = list(), vcov. = NULL, ...)
Arguments
formula1
either a symbolic description for the first model to be tested,
or a fitted object of class "lm".
formula2
either a symbolic description for the second model to be tested,
or a fitted object of class "lm".
data
an optional data frame containing the variables in the
model. By default the variables are taken from the environment
which jtest is called from.
vcov.
a function for estimating the covariance matrix of the regression
coefficients, e.g., vcovHC.
...
further arguments passed to coeftest.
Details
The idea of the J test is the following: if the first model contains
the correct set of regressors, then including the fitted values of the
second model into the set of regressors should provide no significant
improvement. But if it does, it can be concluded that model 1 does not
contain the correct set of regressors.
Hence, to compare both models the fitted values of model
1 are included into model 2 and vice versa. The J test statistic is simply
the marginal test of the fitted values in the augmented model. This is
performed by coeftest.
For further details, see the references.
Value
An object of class "anova" which contains the coefficient estimate
of the fitted values in the augmented regression plus corresponding
standard error, test statistic and p value.
References
R. Davidson & J. MacKinnon (1981). Several Tests for Model Specification in the
Presence of Alternative Hypotheses. Econometrica, 49, 781-793.
W. H. Greene (1993), Econometric Analysis, 2nd ed. Macmillan Publishing Company, New York.
W. H. Greene (2003). Econometric Analysis, 5th ed. New Jersey, Prentice Hall.
See Also
coxtest, encomptest
Examples
## Fit two competing, non-nested models for aggregate
## consumption, as in Greene (1993), Examples 7.11 and 7.12
## load data and compute lags
data(USDistLag)
usdl <- na.contiguous(cbind(USDistLag, lag(USDistLag, k = -1)))
colnames(usdl) <- c("con", "gnp", "con1", "gnp1")
## C(t) = a0 + a1*Y(t) + a2*C(t-1) + u
fm1 <- lm(con ~ gnp + con1, data = usdl)
## C(t) = b0 + b1*Y(t) + b2*Y(t-1) + v
fm2 <- lm(con ~ gnp + gnp1, data = usdl)
## Cox test in both directions:
coxtest(fm1, fm2)
## ...and do the same for jtest() and encomptest().
## Notice that in this particular case they are coincident.
jtest(fm1, fm2)
encomptest(fm1, fm2)