\HeaderA{rpart.control}{Control for Rpart Models}{rpart.control}
\keyword{tree}{rpart.control}
\begin{Description}\relax
Various parameters that control aspects of the \code{rpart} fit.
\end{Description}
\begin{Usage}
\begin{verbatim}
rpart.control(minsplit=20, minbucket=round(minsplit/3), cp=0.01, 
              maxcompete=4, maxsurrogate=5, usesurrogate=2, xval=10,
              surrogatestyle=0, maxdepth=30, ...)
\end{verbatim}
\end{Usage}
\begin{Arguments}
\begin{ldescription}
\item[\code{minsplit}] the minimum number of observations that must exist in a node, in order for 
a split to be attempted. 

\item[\code{minbucket}] the minimum number of observations in any terminal \code{<leaf>} node.
If only one of \code{minbucket} or \code{minsplit} is specified,
the code either sets \code{minsplit} to \code{minbucket*3}
or \code{minbucket} to \code{minsplit/3}, as appropriate.

\item[\code{cp}] complexity parameter.  Any split that does not decrease the overall
lack of fit by a factor of \code{cp} is not attempted.  For instance,
with \code{anova} splitting, this means that the overall Rsquare must
increase by \code{cp} at each step. The main role of this parameter
is to save computing time by pruning off splits that are obviously
not worthwhile. Essentially,the user informs the program that any
split which does not improve the fit by \code{cp} will likely be
pruned off by cross-validation, and that hence the program need
not pursue it.

\item[\code{maxcompete}] the number of competitor splits retained in the output.  It is useful to
know not just which split was chosen, but which variable came in second,
third, etc.

\item[\code{maxsurrogate}] the number of surrogate splits retained in the output.  If this is set to
zero the compute time will be shortened, since approximately half of the
computational time (other than setup) is used in the search for surrogate
splits.

\item[\code{usesurrogate}] how to use surrogates in the splitting process.  0= display only; an
observation with a missing value for the primary split rule is not sent
further down the tree.  1= use surrogates, in order, to split subjects
missing the primary variable; if all surrogates are missing the observation
is not split.  2= if all surrogates are missing, then send the observation
in the majority direction.  A value of 0 corresponds to the action of
\code{tree}, and 2 to the recommendations of Breiman, et.al.

\item[\code{xval}] number of cross-validations 

\item[\code{surrogatestyle}] controls the selection of a best surrogate.
If set to 0 (default) the program uses the total number of correct
classification for a potential surrogate variable,
if set to 1 it uses the percent correct, calculated over the non-missing
values of the surrogate.
The first option more severely penalizes covariates with a large number of
missing values.

\item[\code{maxdepth}] Set the maximum depth of any node of the final tree, with the root
node counted as depth 0 (past 30 \code{rpart} will give nonsense results on
32-bit machines).

\item[\code{...}] mop up other arguments.

\end{ldescription}
\end{Arguments}
\begin{Value}
a list containing the options.
\end{Value}
\begin{SeeAlso}\relax
\code{\LinkA{rpart}{rpart}}
\end{SeeAlso}

