R: EM algorithm starting with E-step for parameterized Gaussian...

em {mclust} | R Documentation

## EM algorithm starting with E-step for parameterized Gaussian mixture models

### Description

Implements the EM algorithm for parameterized Gaussian mixture models, starting with the expectation step.

### Usage

    em(data, modelName, parameters, prior = NULL, control = emControl(),
       warn = NULL, ...)

### Arguments

`data` | A numeric vector, matrix, or data frame of observations. Categorical variables are not allowed. If a matrix or data frame, rows correspond to observations and columns correspond to variables.
`modelName` | A character string indicating the model. The help file for `mclustModelNames` describes the available models.
`parameters` | A names list giving the parameters of the model. The components are as follows: `pro` Mixing proportions for the components of the mixture. If the model includes a Poisson term for noise, there should be one more mixing proportion than the number of Gaussian components. `mean` The mean for each component. If there is more than one component, this is a matrix whose kth column is the mean of the kth component of the mixture model. `variance` A list of variance parameters for the model. The components of this list depend on the model specification. See the help file for `mclustVariance` for details. `Vinv` An estimate of the reciprocal hypervolume of the data region. If set to NULL or a negative value, the default is determined by applying function `hypvol` to the data. Used only when `pro` includes an additional mixing proportion for a noise component.
`prior` | Specification of a conjugate prior on the means and variances. The default assumes no prior.
`control` | A list of control parameters for EM. The defaults are set by the call `emControl()`.
`warn` | A logical value indicating whether or not a warning should be issued when computations fail. The default is `warn=FALSE`.
`...` | Catches unused arguments in indirect or list calls via `do.call`.

### Value

A list including the following components:

`modelName` | A character string identifying the model (same as the input argument).
`n` | The number of observations in the data.
`d` | The dimension of the data.
`G` | The number of mixture components.
`z` | A matrix whose `[i,k]`th entry is the conditional probability of the ith observation belonging to the kth component of the mixture.
`parameters` | `pro` A vector whose kth component is the mixing proportion for the kth component of the mixture model. If the model includes a Poisson term for noise, there should be one more mixing proportion than the number of Gaussian components. `mean` The mean for each component. If there is more than one component, this is a matrix whose kth column is the mean of the kth component of the mixture model. `variance` A list of variance parameters for the model. The components of this list depend on the model specification. See the help file for `mclustVariance` for details. `Vinv` The estimate of the reciprocal hypervolume of the data region used in the computation when the input indicates the addition of a noise component to the model.
`loglik` | The log likelihood for the data in the mixture model.
`control` | The list of control parameters for EM used.
`prior` | The specification of a conjugate prior on the means and variances used, `NULL` if no prior is used.
`Attributes:` | `"info"` Information on the iteration. `"WARNING"` An appropriate warning if problems are encountered in the computations.

### See Also

`emE`, ..., `emVVV`, `estep`, `me`, `mstep`, `mclust.options`, `do.call`

### Examples

    msEst <- mstep(modelName = "EEE", data = iris[,-5],
                   z = unmap(iris[,5]))
    names(msEst)

    em(modelName = msEst$modelName, data = iris[,-5],
       parameters = msEst$parameters)

    do.call("em", c(list(data = iris[,-5]), msEst))   ## alternative call

[Package mclust version 5.4.9 Index]