stepFlexmix {flexmix} | R Documentation |
Run FlexMix Repeatedly
Description
Runs flexmix repeatedly for different numbers of components and returns the maximum likelihood solution for each.
Usage
initFlexmix(..., k, init = list(), control = list(), nrep = 3L,
verbose = TRUE, drop = TRUE, unique = FALSE)
initMethod(name = c("tol.em", "cem.em", "sem.em"),
step1 = list(tolerance = 10^-2),
step2 = list(), control = list(), nrep = 3L)
stepFlexmix(..., k = NULL, nrep = 3, verbose = TRUE, drop = TRUE,
unique = FALSE)
## S4 method for signature 'stepFlexmix,missing'
plot(x, y, what = c("AIC", "BIC", "ICL"),
xlab = NULL, ylab = NULL, legend = "topright", ...)
## S4 method for signature 'stepFlexmix'
getModel(object, which = "BIC")
## S4 method for signature 'stepFlexmix'
unique(x, incomparables = FALSE, ...)
Arguments
... |
|
k |
A vector of integers passed in turn to the |
init |
An object of class |
name |
A character string indication which initialization
strategy should be employed: short runs of EM followed by a long
( |
step1 |
A named list which combined with the |
step2 |
A named list which combined with the |
control |
A named list which combined with the |
nrep |
For each value of |
verbose |
If |
drop |
If |
unique |
If |
x , object |
An object of class |
y |
Not used. |
what |
Character vector naming information criteria to
plot. Functions of the same name must exist, which take a
|
xlab , ylab |
Graphical parameters. |
legend |
If not |
which |
Number of model to get. If character, interpreted as number of components or name of an information criterion. |
incomparables |
A vector of values that cannot be
compared. Currently, |
Value
An object of class "stepFlexmix"
containing the best models
with respect to the log likelihood for the different number of
components in a slot if length(k)>1
, else directly an object of
class "flexmix"
.
If unique = FALSE
, then the resulting object contains one
model per element of k
(which is the number of clusters the EM
algorithm started with). If unique = TRUE
, then the result
is resorted according to the number of clusters contained in the
fitted models (which may be less than the number with which the EM
algorithm started), and only the maximum likelihood solution for each
number of fitted clusters is kept. This operation can also be done
manually by calling unique()
on objects of class
"stepFlexmix"
.
Author(s)
Friedrich Leisch and Bettina Gruen
References
Friedrich Leisch. FlexMix: A general framework for finite mixture models and latent class regression in R. Journal of Statistical Software, 11(8), 2004. doi:10.18637/jss.v011.i08
Christophe Biernacki, Gilles Celeux and Gerard Govaert. Choosing starting values for the EM algorithm for getting the highest likelihood in multivariate Gaussian mixture models. Computational Statistics & Data Analysis, 41(3–4), 561–575, 2003.
Theresa Scharl, Bettina Gruen and Friedrch Leisch. Mixtures of regression models for time-course gene expression data: Evaluation of initialization and random effects. Bioinformatics, 26(3), 370–377, 2010.
Examples
data("Nclus", package = "flexmix")
## try 2 times for k = 4
set.seed(511)
ex1 <- initFlexmix(Nclus~1, k = 4, model = FLXMCmvnorm(diagonal = FALSE),
nrep = 2)
ex1
## now 2 times each for k = 2:5, specify control parameter
ex2 <- initFlexmix(Nclus~1, k = 2:5, model = FLXMCmvnorm(diagonal = FALSE),
control = list(minprior = 0), nrep = 2)
ex2
plot(ex2)
## get BIC values
BIC(ex2)
## get smallest model
getModel(ex2, which = 1)
## get model with 3 components
getModel(ex2, which = "3")
## get model with smallest ICL (here same as for AIC and BIC: true k = 4)
getModel(ex2, which = "ICL")
## now 1 time each for k = 2:5, with larger minimum prior
ex3 <- initFlexmix(Nclus~1, k = 2:5,
model = FLXMCmvnorm(diagonal = FALSE),
control = list(minprior = 0.1), nrep = 1)
ex3
## keep only maximum likelihood solution for each unique number of
## fitted clusters:
unique(ex3)