npqcmstest | R Documentation |
npqcmstest
implements a consistent test for correct
specification of parametric quantile regression models (linear or
nonlinear) as described in Racine (2006) which extends the work of
Zheng (1998).
npqcmstest(formula,
data = NULL,
subset,
xdat,
ydat,
model = stop(paste(sQuote("model")," has not been provided")),
tau = 0.5,
distribution = c("bootstrap", "asymptotic"),
bwydat = c("y","varepsilon"),
boot.method = c("iid","wild","wild-rademacher"),
boot.num = 399,
pivot = TRUE,
density.weighted = TRUE,
random.seed = 42,
...)
formula |
a symbolic description of variables on which the test is to be performed. The details of constructing a formula are described below. |
data |
an optional data frame, list or environment (or object
coercible to a data frame by |
subset |
an optional vector specifying a subset of observations to be used. |
model |
a model object obtained from a call to |
xdat |
a |
ydat |
a one (1) dimensional numeric or integer vector of dependent data, each
element |
tau |
a numeric value specifying the |
distribution |
a character string used to specify the method of estimating the
distribution of the statistic to be calculated. |
bwydat |
a character string used to specify the left hand side variable used
in bandwidth selection. |
boot.method |
a character string used to specify the bootstrap method.
|
boot.num |
an integer value specifying the number of bootstrap replications to
use. Defaults to |
pivot |
a logical value specifying whether the statistic should be
normalised such that it approaches |
density.weighted |
a logical value specifying whether the statistic should be
weighted by the density of |
random.seed |
an integer used to seed R's random number generator. This is to ensure replicability. Defaults to 42. |
... |
additional arguments supplied to control bandwidth selection on the
residuals. One can specify the bandwidth type,
kernel types, and so on. To do this, you may specify any of |
npqcmstest
returns an object of type cmstest
with the
following components. Components will contain information
related to Jn
or In
depending on the value of pivot
:
Jn |
the statistic |
In |
the statistic |
Omega.hat |
as described in Racine, J.S. (2006). |
q.* |
the various quantiles of the statistic |
P |
the P-value of the statistic |
Jn.bootstrap |
if |
In.bootstrap |
if |
summary
supports object of type cmstest
.
If you are using data of mixed types, then it is advisable to use the
data.frame
function to construct your input data and not
cbind
, since cbind
will typically not work as
intended on mixed data types and will coerce the data to the same
type.
Tristen Hayfield tristen.hayfield@gmail.com, Jeffrey S. Racine racinej@mcmaster.ca
Aitchison, J. and C.G.G. Aitken (1976), “Multivariate binary discrimination by the kernel method,” Biometrika, 63, 413-420.
Koenker, R.W. and G.W. Bassett (1978), “Regression quantiles,” Econometrica, 46, 33-50.
Li, Q. and J.S. Racine (2007), Nonparametric Econometrics: Theory and Practice, Princeton University Press.
Murphy, K. M. and F. Welch (1990), “Empirical age-earnings profiles,” Journal of Labor Economics, 8, 202-229.
Pagan, A. and A. Ullah (1999), Nonparametric Econometrics, Cambridge University Press.
Racine, J.S. (2006), “Consistent specification testing of heteroskedastic parametric regression quantile models with mixed data,” manuscript.
Wang, M.C. and J. van Ryzin (1981), “A class of smooth estimators for discrete distributions,” Biometrika, 68, 301-309.
Zheng, J. (1998), “A consistent nonparametric test of parametric regression models under conditional quantile restrictions,” Econometric Theory, 14, 123-138.
## Not run:
# EXAMPLE 1: For this example, we conduct a consistent quantile regression
# model specification test for a parametric wage quantile regression
# model that is quadratic in age. The work of Murphy and Welch (1990)
# would suggest that this parametric quantile regression model is
# misspecified.
library("quantreg")
data("cps71")
attach(cps71)
model <- rq(logwage~age+I(age^2), tau=0.5, model=TRUE)
plot(age, logwage)
lines(age, fitted(model))
X <- data.frame(age)
# Note - this may take a few minutes depending on the speed of your
# computer...
npqcmstest(model = model, xdat = X, ydat = logwage, tau=0.5)
# Sleep for 5 seconds so that we can examine the output...
Sys.sleep(5)
# Next try Murphy & Welch's (1990) suggested quintic specification.
model <- rq(logwage~age+I(age^2)+I(age^3)+I(age^4)+I(age^5), model=TRUE)
plot(age, logwage)
lines(age, fitted(model))
X <- data.frame(age)
# Note - this may take a few minutes depending on the speed of your
# computer...
npqcmstest(model = model, xdat = X, ydat = logwage, tau=0.5)
detach(cps71)
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.