30-em.one.e: Compute One E-step and Log Likelihood Based on Current...

One E-StepR Documentation

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.

Usage

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

Arguments

PARAM

a set of parameters.

update.logL

TRUE for update observed data log likelihood.

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.

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.

Author(s)

Wei-Chen Chen wccsnow@gmail.com and George Ostrouchov.

References

Programming with Big Data in R Website: https://pbdr.org/

See Also

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

Examples

## Not run: 
# This is a core function for em.onestep()
# see the source code for details.

## End(Not run)

snoweye/pmclust documentation built on Sept. 12, 2023, 5:42 a.m.