Kernel Modal Regression with Mixed Data Types
np.conmode.Rdnpconmode performs kernel modal regression on mixed data,
and finds the
conditional mode given a set of training data, consisting of
explanatory data and dependent data, and possibly evaluation data.
Automatically computes various in sample and out of sample measures of
accuracy.
Usage
npconmode(bws, ...)
# S3 method for class 'formula'
npconmode(bws, data = NULL, newdata = NULL, ...)
# S3 method for class 'call'
npconmode(bws, ...)
# Default S3 method
npconmode(bws, txdat, tydat, ...)
# S3 method for class 'conbandwidth'
npconmode(bws,
txdat = stop("invoked without training data 'txdat'"),
tydat = stop("invoked without training data 'tydat'"),
exdat,
eydat,
...)Arguments
- bws
a bandwidth specification. This can be set as a
conbandwidthobject returned from an invocation ofnpcdensbw- ...
additional arguments supplied to specify the bandwidth type, kernel types, and so on, detailed below. This is necessary if you specify bws as a \(p+q\)-vector and not a
conbandwidthobject, and you do not desire the default behaviours.- data
an optional data frame, list or environment (or object coercible to a data frame by
as.data.frame) containing the variables in the model. If not found in data, the variables are taken fromenvironment(bws), typically the environment from whichnpcdensbwwas called.- newdata
An optional data frame in which to look for evaluation data. If omitted, the training data are used.
- txdat
a \(p\)-variate data frame of explanatory data (conditioning data) used to calculate the regression estimators. Defaults to the training data used to compute the bandwidth object.
- tydat
a one (1) dimensional vector of unordered or ordered factors, containing the dependent data. Defaults to the training data used to compute the bandwidth object.
- exdat
a \(p\)-variate data frame of points on which the regression will be estimated (evaluation data). By default, evaluation takes place on the data provided by
txdat.- eydat
a one (1) dimensional numeric or integer vector of the true values (outcomes) of the dependent variable. By default, evaluation takes place on the data provided by
tydat.
Value
npconmode returns a conmode object with the following
components:
- conmode
a vector of type
factor(orordered factor) containing the conditional mode at each evaluation point- condens
a vector of numeric type containing the modal density estimates at each evaluation point
- xeval
a data frame of evaluation points
- yeval
a vector of type
factor(orordered factor) containing the actual outcomes, orNAif not provided- confusion.matrix
the confusion matrix or
NAif outcomes are not available- CCR.overall
the overall correct classification ratio, or
NAif outcomes are not available- CCR.byoutcome
a numeric vector containing the correct classification ratio by outcome, or
NAif outcomes are not available- fit.mcfadden
the McFadden-Puig-Kerschner performance measure or
NAif outcomes are not available
The functions mode, and fitted may be used to
extract the conditional mode estimates, and the conditional density
estimates at the conditional mode, respectively,
from the resulting object. Also, summary supports
conmode objects.
References
Aitchison, J. and C.G.G. Aitken (1976), “Multivariate binary discrimination by the kernel method,” Biometrika, 63, 413-420.
Hall, P. and J.S. Racine and Q. Li (2004), “Cross-validation and the estimation of conditional probability densities,” Journal of the American Statistical Association, 99, 1015-1026.
Li, Q. and J.S. Racine (2007), Nonparametric Econometrics: Theory and Practice, Princeton University Press.
McFadden, D. and C. Puig and D. Kerschner (1977), “Determinants of the long-run demand for electricity,” Proceedings of the American Statistical Association (Business and Economics Section), 109-117.
Pagan, A. and A. Ullah (1999), Nonparametric Econometrics, Cambridge University Press.
Scott, D.W. (1992), Multivariate Density Estimation. Theory, Practice and Visualization, New York: Wiley.
Silverman, B.W. (1986), Density Estimation, London: Chapman and Hall.
Wang, M.C. and J. van Ryzin (1981), “A class of smooth estimators for discrete distributions,” Biometrika, 68, 301-309.
Author
Tristen Hayfield tristen.hayfield@gmail.com, Jeffrey S. Racine racinej@mcmaster.ca
Usage Issues
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.
Examples
if (FALSE) { # \dontrun{
# EXAMPLE 1 (INTERFACE=FORMULA): For this example, we use the
# birthweight data taken from the MASS library, and compute a parametric
# logit model and a nonparametric conditional mode model. We then
# compare their confusion matrices and summary measures of
# classification ability.
library("MASS")
data("birthwt")
attach(birthwt)
# Fit a parametric logit model with low (0/1) as the dependent
# variable and age, lwt, and smoke (0/1) as the covariates
# From ?birthwt
# 'low' indicator of birth weight less than 2.5kg
# 'smoke' smoking status during pregnancy
# 'race' mother's race ('1' = white, '2' = black, '3' = other)
# 'ht' history of hypertension
# 'ui' presence of uterine irritability
# 'ftv' number of physician visits during the first trimester
# 'age' mother's age in years
# 'lwt' mother's weight in pounds at last menstrual period
model.logit <- glm(low~factor(smoke)+
factor(race)+
factor(ht)+
factor(ui)+
ordered(ftv)+
age+
lwt,
family=binomial(link=logit))
# Generate the confusion matrix and correct classification ratio
cm <- table(low, ifelse(fitted(model.logit)>0.5, 1, 0))
ccr <- sum(diag(cm))/sum(cm)
# Now do the same with a nonparametric model. Note - this may take a
# few minutes depending on the speed of your computer...
bw <- npcdensbw(formula=factor(low)~factor(smoke)+
factor(race)+
factor(ht)+
factor(ui)+
ordered(ftv)+
age+
lwt)
model.np <- npconmode(bws=bw)
# Compare confusion matrices from the logit and nonparametric model
# Logit
cm
ccr
# Nonparametric
summary(model.np)
detach(birthwt)
# EXAMPLE 1 (INTERFACE=DATA FRAME): For this example, we use the
# birthweight data taken from the MASS library, and compute a parametric
# logit model and a nonparametric conditional mode model. We then
# compare their confusion matrices and summary measures of
# classification ability.
library("MASS")
data("birthwt")
attach(birthwt)
# Fit a parametric logit model with low (0/1) as the dependent
# variable and age, lwt, and smoke (0/1) as the covariates
# From ?birthwt
# 'low' indicator of birth weight less than 2.5kg
# 'smoke' smoking status during pregnancy
# 'race' mother's race ('1' = white, '2' = black, '3' = other)
# 'ht' history of hypertension
# 'ui' presence of uterine irritability
# 'ftv' number of physician visits during the first trimester
# 'age' mother's age in years
# 'lwt' mother's weight in pounds at last menstrual period
model.logit <- glm(low~factor(smoke)+
factor(race)+
factor(ht)+
factor(ui)+
ordered(ftv)+
age+
lwt,
family=binomial(link=logit))
# Generate the confusion matrix and correct classification ratio
cm <- table(low, ifelse(fitted(model.logit)>0.5, 1, 0))
ccr <- sum(diag(cm))/sum(cm)
# Now do the same with a nonparametric model...
X <- data.frame(factor(smoke),
factor(race),
factor(ht),
factor(ui),
ordered(ftv),
age,
lwt)
y <- factor(low)
# Note - this may take a few minutes depending on the speed of your
# computer...
bw <- npcdensbw(xdat=X, ydat=y)
model.np <- npconmode(bws=bw)
# Compare confusion matrices from the logit and nonparametric model
# Logit
cm
ccr
# Nonparametric
summary(model.np)
detach(birthwt)
} # }