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.
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.
Note
If zero cell counts occur in the complete-data table, the maximum
likelihood estimate may not be unique, and the algorithm may converge
to different stationary values depending on the starting value. Also,
if zero cell counts occur in the complete-data table, the ML estimate
may lie on the boundary of the parameter space.
References
Schafer, J. L. (1996) Analysis of Incomplete Multivariate Data.
Chapman & Hall, Chapter 9.
See Also
prelim.mix, getparam.mix,
and ecm.mix.
Examples
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