Learn R Programming

mix (version 1.0-13)

em.mix: EM Algorithm for Unrestricted General Location Model

Description

Computes maximum-likelihood estimates for the parameters of the unrestricted general location model from an incomplete mixed dataset.

Usage

em.mix(s, start, prior=1, maxits=1000, showits=TRUE, eps=0.0001)

Value

a list representing the maximum-likelihood estimates (or posterior mode) of the normal parameters. This list contains cell probabilities, cell means, and covariances. The parameter can be transformed back to the original scale and put into a more understandable format by the function getparam.mix.

Arguments

s

summary list of an incomplete data matrix produced by the function prelim.mix.

start

optional starting value of the parameter. This is a parameter list in packed storage, such as one returned by this function or by da.mix. If structural zeros appear in the contingency table, start$pi should contain zeros in those positions and ones elsewhere. If no starting value is supplied, em.mix chooses its own appropriate starting value.

prior

Optional vector or array of hyperparameters for a Dirichlet prior distribution. By default, uses a uniform prior on the cell probabilities (all hyperparameters set to one). EM algorithm finds the posterior mode, which under a uniform prior is the same as a maximum-likelihood estimate. If structural zeros appear in the table, the corresponding hyperparameters should be set to NA.

maxits

maximum number of iterations performed. The algorithm will stop if the parameter still has not converged after this many iterations.

showits

if TRUE, reports the iterations of EM so the user can monitor the progress of the algorithm.

eps

optional convergence criterion. The algorithm stops when the maximum relative difference in every parameter from one iteration to the next is less than or equal to this value.

References

Schafer, J. L. (1996) Analysis of Incomplete Multivariate Data. Chapman & Hall, Chapter 9.

See Also

prelim.mix, getparam.mix, and ecm.mix.

Examples

Run this code
data(stlouis)
s <- prelim.mix(stlouis,3)    # do preliminary manipulations
thetahat <- em.mix(s)   # compute ML estimate
getparam.mix(s,thetahat, corr=TRUE) # look at estimated parameters

Run the code above in your browser using DataLab