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

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

modelName

A character string indicating the model. The help file for
`mclustModelNames`

describes the available models.

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.

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.

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`

.

A list including the following components:

A character string identifying the model (same as the input argument).

The number of observations in the data.

The dimension of the data.

The number of mixture components.

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.

`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.

```
# NOT RUN {
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 DataCamp Workspace