flexmix {flexmix} | R Documentation |
FlexMix implements a general framework for finite
mixtures of regression models. Parameter estimation is performed using
the EM algorithm: the E-step is implemented by flexmix
, while
the user can specify the M-step.
flexmix(formula, data = list(), k = NULL, cluster = NULL, model=NULL, control = NULL) ## S4 method for signature 'flexmix': summary(object, eps=1e-4, ...)
formula |
A symbolic description of the model to be fit. The
general form is y~x|g where y is the response,
x the set of predictors and g an optional grouping
factor for repeated measurements. |
data |
An optional data frame containing the variables in the model. |
k |
Number of clusters (not needed if cluster is specified). |
cluster |
Factor or integer vector with the initial cluster
assignments of observations at the
start of the EM algorithm (default is random assignment into k
clusters). |
model |
Object of FLXmodel of list of FLXmodel
objects. Default is the object returned by calling
FLXglm() . |
control |
Object of class FLXcontrol or a named list. |
object |
Object of class flexmix . |
eps |
Probabilities below this treshold are treated as zero in the summary method. |
... |
Currently not used. |
FlexMix models are described by objects of class FLXmodel
,
which in turn are created by driver functions like
FLXglm
or FLXmclust
. Multivariate
responses with independent components can be specified using a
list of FLXmodel
objects.
The summary
method lists for each component the prior
probability, the number of observations assigned to the corresponding
cluster, the number of observations with a posterior probability
larger than eps
and the ratio of the latter two numbers (which
indicates how separated the cluster is from the others).
Returns an object of class flexmix
.
Friedrich Leisch
data(NPreg) ## mixture of two linear regression models. Note that control parameters ## can be specified as named list and abbreviated if unique. ex1 <- flexmix(yn~x+I(x^2), data=NPreg, k=2, control=list(verb=5, iter=100)) ex1 summary(ex1) plot(ex1) ## now we fit a model with one Gaussian response and one Poisson ## response. Note that the formulas inside the call to FLXglm are ## relative to the overall model formula. ex2 <- flexmix(yn~x, data=NPreg, k=2, model=list(FLXglm(yn~.+I(x^2)), FLXglm(yp~., family="poisson"))) plot(ex2) ex2 table(ex2@cluster, NPreg$class) ## for Gaussian responses we get coefficients and standard deviation parameters(ex2, component=1, model=1) ## for Poisson response we get only coefficients parameters(ex2, component=1, model=2) ## fitting a model only to the Poisson response is of course ## done like this ex3 <- flexmix(yp~x, data=NPreg, k=2, model=FLXglm(family="poisson")) ## if observations are grouped, i.e., we have several observations per ## individual, fitting is usually much faster: ex4 <- flexmix(yp~x|id1, data=NPreg, k=2, model=FLXglm(family="poisson"))