pmclust (version 0.2-0)

One E-Step: Compute One E-step and Log Likelihood Based on Current Parameters

Description

This function will perform one E-step based on current parameters. This is a core function of em.onestep.

e.step.dmat is a ddmatrix version of e.step.

Usage

e.step(PARAM, update.logL = TRUE)

e.step.dmat(PARAM, update.logL = TRUE)

Arguments

PARAM

a set of parameters.

update.logL

TRUE for update observed data log likelihood.

Value

Several global variables will be overwrote after this call including Z.spmd, W.spmd.rowSums, W.spmd, U.spmd, and Z.colSums.

Computing Issues

Since the clusters can be degenerated or highly flat, these cause very large positive or negative exponents in densities. The log likelihood will tend to be inaccurate (not finite). Since the mixture structures can be over fit, this also cause very tiny mixing proportions. The poster probabilities can also unstable (NaN).

These can be solved by rescaling the range of exponents carefully and adjust the scaling factor on the log values. See CONTROL for details about constrains on E- and M-steps.

Details

This function will base on the current parameter to compute the densities for all observations for all K components, and update the Z.spmd matrix. If the update.logL is true, then the log likelihood W.spmd.rowSums will be also updated before the end of this function.

Sum of W.spmd.rowSums of all processors will be the observed data log likelihood for the current iteration.

References

Programming with Big Data in R Website: http://r-pbd.org/

See Also

set.global, em.onestep, m.step.

Examples

Run this code
# NOT RUN {
# This is a core function for em.onestep()
# see the source code for details.
# }

Run the code above in your browser using DataLab