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

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

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*i*th observation belonging to the*k*th component of the mixture.- parameters
`pro`

A vector whose

*k*th component is the mixing proportion for the*k*th 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

*k*th 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.

The log likelihood for the data in the mixture model.

The list of control parameters for EM used.

The specification of a conjugate prior on the means and variances used,
`NULL`

if no prior is used.

`"info"`

Information on the iteration.

`"WARNING"`

An appropriate warning if problems are
encountered in the computations.

- 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

*k*th 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.

Specification of a conjugate prior on the means and variances. The default assumes no prior.

A list of control parameters for EM. The defaults are set by the call
`emControl()`

.

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`

.

`emE`

, ...,
`emVVV`

,
`estep`

,
`me`

,
`mstep`

,
`mclust.options`

,
`do.call`

```
# \donttest{
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
# }
```

Run the code above in your browser using DataLab