em.mix {mix} | R Documentation |
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)
Arguments
s |
summary list of an incomplete data matrix produced by the function
|
start |
optional starting value of the parameter. This is a parameter list in
packed storage, such as one returned by this function or by
|
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 |
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