One E-Step {pmclust} | R 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)