flexmix package:flexmix R Documentation
_F_l_e_x_i_b_l_e _M_i_x_t_u_r_e _M_o_d_e_l_i_n_g
_D_e_s_c_r_i_p_t_i_o_n:
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.
_U_s_a_g_e:
flexmix(formula, data = list(), k = NULL, cluster = NULL,
model=NULL, concomitant=NULL, control = NULL,
weights = NULL)
## S4 method for signature 'flexmix'
summary(object, eps=1e-4, ...)
_A_r_g_u_m_e_n_t_s:
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: Either a matrix with ‘k’ columns of initial cluster
membership probabilities for each observation; or a 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.
weights: An optional vector of replication weights to be used in the
fitting process. Should be ‘NULL’, an integer vector or a
formula.
model: Object of class ‘FLXM’ or list of ‘FLXM’ objects. Default is
the object returned by calling ‘FLXMRglm()’.
concomitant: Object of class ‘FLXP’. Default is the object returned by
calling ‘FLXPconstant’.
control: Object of class ‘FLXcontrol’ or a named list.
object: Object of class ‘flexmix’.
eps: Probabilities below this threshold are treated as zero in the
summary method.
...: Currently not used.
_D_e_t_a_i_l_s:
FlexMix models are described by objects of class ‘FLXM’, which in
turn are created by driver functions like ‘FLXMRglm’ or
‘FLXMCmvnorm’. Multivariate responses with independent components
can be specified using a list of ‘FLXM’ 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).
_V_a_l_u_e:
Returns an object of class ‘flexmix’.
_A_u_t_h_o_r(_s):
Friedrich Leisch and Bettina Gruen
_R_e_f_e_r_e_n_c_e_s:
Friedrich Leisch. FlexMix: A general framework for finite mixture
models and latent class regression in R. _Journal of Statistical
Software_, *11*(8), 2004. http://www.jstatsoft.org/v11/i08/
_S_e_e _A_l_s_o:
‘plot-methods’
_E_x_a_m_p_l_e_s:
data("NPreg", package = "flexmix")
## 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 FLXMRglm are
## relative to the overall model formula.
ex2 <- flexmix(yn~x, data=NPreg, k=2,
model=list(FLXMRglm(yn~.+I(x^2)),
FLXMRglm(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=FLXMRglm(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=FLXMRglm(family="poisson"))
## And now a binomial example. Mixtures of binomials are not generically
## identified, here the grouping variable is necessary:
set.seed(1234)
ex5 <- initFlexmix(cbind(yb,1-yb)~x, data=NPreg, k=2,
model=FLXMRglm(family="binomial"), nrep=5)
table(NPreg$class, clusters(ex5))
ex6 <- initFlexmix(cbind(yb,1-yb)~x|id2, data=NPreg, k=2,
model=FLXMRglm(family="binomial"), nrep=5)
table(NPreg$class, clusters(ex6))