
Fit a rpart
model
rpart(formula, data, weights, subset, na.action = na.rpart, method,
model = FALSE, x = FALSE, y = TRUE, parms, control, cost, ...)
An object of class rpart
. See rpart.object
.
a formula, with a response but no interaction
terms. If this is a data frame, it is taken as the model frame
(see model.frame).
an optional data frame in which to interpret the variables named in the formula.
optional case weights.
optional expression saying that only a subset of the rows of the data should be used in the fit.
the default action deletes all observations for which
y
is missing, but keeps those in which one or more predictors
are missing.
one of "anova"
, "poisson"
, "class"
or "exp"
. If method
is missing then the routine tries
to make an intelligent guess.
If y
is a survival object, then method = "exp"
is assumed,
if y
has 2 columns then method = "poisson"
is assumed,
if y
is a factor then method = "class"
is assumed,
otherwise method = "anova"
is assumed.
It is wisest to specify the method directly, especially as more
criteria may added to the function in future.
Alternatively, method
can be a list of functions named
init
, split
and eval
. Examples are given in
the file tests/usersplits.R
in the sources, and in the
vignettes ‘User Written Split Functions’.
if logical: keep a copy of the model frame in the result?
If the input value for model
is a model frame (likely from an
earlier call to the rpart
function), then this frame is used
rather than constructing new data.
keep a copy of the x
matrix in the result.
keep a copy of the dependent variable in the result. If
missing and model
is supplied this defaults to FALSE
.
optional parameters for the splitting function.
Anova splitting has no parameters.
Poisson splitting has a single parameter, the coefficient of variation of
the prior distribution on the rates. The default value is 1.
Exponential splitting has the same parameter as Poisson.
For classification splitting, the list can contain any of:
the vector of prior probabilities (component prior
), the loss matrix
(component loss
) or the splitting index (component
split
). The priors must be positive and sum to 1. The loss
matrix must have zeros on the diagonal and positive off-diagonal
elements. The splitting index can be gini
or
information
. The default priors are proportional to the data
counts, the losses default to 1, and the split defaults to
gini
.
a list of options that control details of the
rpart
algorithm. See rpart.control
.
a vector of non-negative costs, one for each variable in the model. Defaults to one for all variables. These are scalings to be applied when considering splits, so the improvement on splitting on a variable is divided by its cost in deciding which split to choose.
arguments to rpart.control
may also be
specified in the call to rpart
. They are checked against the
list of valid arguments.
This differs from the tree
function in S mainly in its handling
of surrogate variables. In most details it follows Breiman
et. al (1984) quite closely. R package tree provides a
re-implementation of tree
.
Breiman L., Friedman J. H., Olshen R. A., and Stone, C. J. (1984) Classification and Regression Trees. Wadsworth.
rpart.control
, rpart.object
,
summary.rpart
, print.rpart
fit <- rpart(Kyphosis ~ Age + Number + Start, data = kyphosis)
fit2 <- rpart(Kyphosis ~ Age + Number + Start, data = kyphosis,
parms = list(prior = c(.65,.35), split = "information"))
fit3 <- rpart(Kyphosis ~ Age + Number + Start, data = kyphosis,
control = rpart.control(cp = 0.05))
par(mfrow = c(1,2), xpd = NA) # otherwise on some devices the text is clipped
plot(fit)
text(fit, use.n = TRUE)
plot(fit2)
text(fit2, use.n = TRUE)
Run the code above in your browser using DataLab