mix
creates an object of class mix
, an (independent)
mixture model (as a limit case of dependent mixture models in which all
observed time series are of length 1), otherwise known latent class or
mixture model. For a short description of the package see
depmixS4
.mix(response, data=NULL, nstates, family=gaussian(),
prior=~1, initdata=NULL, respstart=NULL, instart=NULL,...)
mix
returns an object of class mix
which has the
following slots:mix-class
help for details. For
internal use.rep(1,nrow(data))
; for internal
use only.mix
creates an S4 object of class mix
,
which needs to be fitted using fit
to optimize the
parameters.
The response model(s) are by default created by call(s) to
GLMresponse
using the formula
and the family
arguments, the latter specifying the error distribution. See
GLMresponse
for possible values of the family
argument for glm
-type responses (ie a subset of the glm
family options, and the multinomial). Alternative response
distributions are specified by using the makeDepmix
function. Its help page has examples of specifying a model with a
multivariate normal response, as well as an example of adding a
user-defined response model, in this case for the ex-gauss
distribution.
If response
is a list of formulae, the response
's are
assumed to be independent conditional on the latent state.
The prior density is modeled as a multinomial logistic. This model is
created by a call to transInit
.
Starting values may be provided by the respective arguments. The order
in which parameters must be provided can be easily studied by using the
setpars
and getpars
functions.
Linear constraints on parameters can be provided as argument to the
fit
function.
The print function prints the formulae for the response and prior
models along with their parameter values.fit
, transInit
, GLMresponse
,
depmix-methods
for accessor functions to depmix
objects.# four binary items on the balance scale task
data(balance)
# define a latent class model
instart=c(0.5,0.5)
set.seed(1)
respstart=runif(16)
# note that ntimes argument is used to make this a mixture model
mod <- mix(list(d1~1,d2~1,d3~1,d4~1), data=balance, nstates=2,
family=list(multinomial(),multinomial(),multinomial(),multinomial()),
respstart=respstart,instart=instart)
# to see the model
mod
Run the code above in your browser using DataLab