npMSL {mixtools} | R Documentation |
Nonparametric EM-like Algorithm for Mixtures of Independent Repeated Measurements - Maximum Smoothed Likelihood version
Description
Returns nonparametric Smoothed Likelihood algorithm output (Levine et al, 2011) for mixtures of multivariate (repeated measures) data where the coordinates of a row (case) in the data matrix are assumed to be independent, conditional on the mixture component (subpopulation) from which they are drawn.
Usage
npMSL(x, mu0, blockid = 1:ncol(x),
bw = bw.nrd0(as.vector(as.matrix(x))), samebw = TRUE,
bwmethod = "S", h = bw, eps = 1e-8,
maxiter=500, bwiter = maxiter, nbfold = NULL,
ngrid=200, post=NULL, verb = TRUE)
Arguments
x |
An |
mu0 |
Either an |
blockid |
A vector of length |
bw |
Bandwidth for density estimation, equal to the standard deviation
of the kernel density. By default, a simplistic application of the
default |
samebw |
Logical: If |
bwmethod |
Define the adaptive bandwidth strategy when |
h |
Alternative way to specify the bandwidth, to provide backward compatibility. |
eps |
Tolerance limit for declaring algorithm convergence. Convergence
is declared whenever the maximum change in any coordinate of the
|
maxiter |
The maximum number of iterations allowed, convergence
may be declared before |
bwiter |
The maximum number of iterations allowed for adaptive bandwidth stage,
when |
nbfold |
A parameter passed to the internal function |
ngrid |
Number of points in the discretization of the intervals over which are approximated the (univariate) integrals for non linear smoothing of the log-densities, as required in the E step of the npMSL algorithm, see Levine et al (2011). |
post |
If non-NULL, an |
verb |
If TRUE, print updates for every iteration of the algorithm as it runs |
Value
npMSL
returns a list of class npEM
with the following items:
data |
The raw data (an |
posteriors |
An |
bandwidth |
If |
blockid |
Same as the |
lambda |
The sequence of mixing proportions over iterations. |
lambdahat |
The final mixing proportions. |
loglik |
The sequence of log-likelihoods over iterations. |
f |
An array of size |
meanNaN |
Average number of |
meanUdfl |
Average number of "underflow" that occured over iterations (for internal testing and control purpose). |
References
Benaglia, T., Chauveau, D., and Hunter, D. R. (2009), An EM-like algorithm for semi- and non-parametric estimation in multivariate mixtures, Journal of Computational and Graphical Statistics, 18, 505-526.
Benaglia, T., Chauveau, D. and Hunter, D.R. (2011), Bandwidth Selection in an EM-like algorithm for nonparametric multivariate mixtures. Nonparametric Statistics and Mixture Models: A Festschrift in Honor of Thomas P. Hettmansperger. World Scientific Publishing Co., pages 15-27.
Chauveau D., Hunter D. R. and Levine M. (2014), Semi-Parametric Estimation for Conditional Independence Multivariate Finite Mixture Models. Preprint (under revision).
Levine, M., Hunter, D. and Chauveau, D. (2011), Maximum Smoothed Likelihood for Multivariate Mixtures, Biometrika 98(2): 403-416.
See Also
npEM
, plot.npEM
,
normmixrm.sim
, spEMsymloc
,
spEM
, plotseq.npEM
Examples
## Examine and plot water-level task data set.
## Block structure pairing clock angles that are directly opposite one
## another (1:00 with 7:00, 2:00 with 8:00, etc.)
set.seed(111) # Ensure that results are exactly reproducible
data(Waterdata)
blockid <- c(4,3,2,1,3,4,1,2) # see Benaglia et al (2009a)
## Not run:
a <- npEM(Waterdata[,3:10], mu0=3, blockid=blockid, bw=4) # npEM solution
b <- npMSL(Waterdata[,3:10], mu0=3, blockid=blockid, bw=4) # smoothed version
# Comparisons on the 4 default plots, one for each block
par(mfrow=c(2,2))
for (l in 1:4){
plot(a, blocks=l, breaks=5*(0:37)-92.5,
xlim=c(-90,90), xaxt="n",ylim=c(0,.035), xlab="")
plot(b, blocks=l, hist=FALSE, newplot=FALSE, addlegend=FALSE, lty=2,
dens.col=1)
axis(1, at=30*(1:7)-120, cex.axis=1)
legend("topleft",c("npMSL"),lty=2, lwd=2)}
## End(Not run)