tclust (version 1.4-1)

ctlcurves: Classification Trimmed Likelihood Curves

Description

The function applies tclust several times on a given dataset while parameters alpha and k are altered. The resulting object gives an idea of the optimal trimming level and number of clusters considering a particular dataset.

Usage

ctlcurves (x, k = 1:4, alpha = seq (0, 0.2, len = 6), 
           restr.fact = 50, trace = 1, ...)

Arguments

x

A matrix or data frame of dimension n x p, containing the observations (row-wise).

k

A vector of cluster numbers to be checked. By default cluster numbers from 1 to 5 are examined.

alpha

A vector containing the alpha levels to be checked. By default alpha levels from 0 to 0.2 (continuously increased by 0.01), are checked.

restr.fact

The restriction factor passed to tclust.

Further arguments (as e.g. restr), passed to tclust.

trace

Defines the tracing level, which is set to 1 by default. Tracing level 2 gives additional information on the current iteration.

Value

The function returns an S3 object of type ctlcurves with components:

par

A list containing all the parameters passed to this function.

obj

An array containing the objective functions values of each computed cluster-solution.

min.weights

An array containing the minimum cluster weight of each computed cluster-solution.

% \item{bestassig}{ The \code{tclust} object which provided the best cluster-solution (maximizing the target function). } % \item{aa}{The different levels of alpha which have been tested. } So far there is no output available for print.ctlcurves. Use plot on an ctlcurves object for a graphical interpretation of it.

Details

These curves show the values of the trimmed classification (log-)likelihoods when altering the trimming proportion alpha and the number of clusters k. The careful examination of these curves provides valuable information for choosing these parameters in a clustering problem. For instance, an appropriate k to be chosen is one that we do not observe a clear increase in the trimmed classification likelihood curve for k with respect to the k+1 curve for almost all the range of alpha values. Moreover, an appropriate choice of parameter alpha may be derived by determining where an initial fast increase of the trimmed classification likelihood curve stops for the final chosen k. A more detailed explanation can be found in Garc<ed>a-Escudero et al. (2010).

References

Garc<ed>a-Escudero, L.A.; Gordaliza, A.; Matr<e1>n, C. and Mayo-Iscar, A. (2010), "Exploring the number of groups in robust model-based clustering." Statistics and Computing, (Forthcoming). Preprint available at www.eio.uva.es/infor/personas/langel.html.

See Also

plot.ctlcurves

Examples

Run this code
# NOT RUN {
#--- EXAMPLE 1 ------------------------------------------

sig <- diag (2)
cen <- rep (1, 2)
x <- rbind(mvtnorm::rmvnorm(108, cen * 0,   sig),
	       mvtnorm::rmvnorm(162, cen * 5,   sig * 6 - 2),
	       mvtnorm::rmvnorm(30, cen * 2.5, sig * 50)
)

ctl <- ctlcurves (x, k = 1:4)

  ##  ctl-curves 
plot (ctl)  ##  --> selecting k = 2, alpha = 0.08

  ##  the selected model 
plot (tclust (x, k = 2, alpha = 0.08, restr.fact = 7))

#--- EXAMPLE 2 ------------------------------------------

data (geyser2)
ctl <- ctlcurves (geyser2, k = 1:5)

  ##  ctl-curves 
plot (ctl)  ##  --> selecting k = 3, alpha = 0.08

  ##  the selected model
plot (tclust (geyser2, k = 3, alpha = 0.08, restr.fact = 5))


#--- EXAMPLE 3 ------------------------------------------

data (swissbank)
ctl <- ctlcurves (swissbank, k = 1:5, alpha = seq (0, 0.3, by = 0.025))

  ##  ctl-curves 
plot (ctl)  ##  --> selecting k = 2, alpha = 0.1

  ##  the selected model
plot (tclust (swissbank, k = 2, alpha = 0.1, restr.fact = 50))
# }
# NOT RUN {
# }

Run the code above in your browser using DataLab