Returns semiparametric EM algorithm output (Bordes et al, 2007, and Benaglia et al, 2009) for location mixtures of univariate data and symmetric component density.
spEMsymloc(x, mu0, bw = bw.nrd0(x), h=bw, eps = 1e-8, maxiter = 100,
stochastic = FALSE, verbose = FALSE)
spEMsymloc
returns a list of class npEM
with the following items:
The raw data (an \(n\times r\) matrix).
An \(n\times m\) matrix of posterior probabilities for
observations. If stochastic = TRUE
, this matrix is computed
from an average over the maxiter
iterations.
Same as the bw
input argument, returned because this
information is needed by any method that produces density estimates from the
output.
The sequence of mixing proportions over iterations.
The final estimate for mixing proportions if stochastic =
FALSE
, the average over the sequence if stochastic = TRUE
.
the sequence of component means over iterations.
the final estimate of component means if stochastic =
FALSE
, the average over the sequence if stochastic = TRUE
.
Flag indicating that the kernel density estimate is using a symmetry assumption.
A vector of length \(n\) consisting of the data.
Either a vector specifying the initial centers for the kmeans function, and from which the number of component is obtained, or an integer \(m\) specifying the number of initial centers, which are then choosen randomly in kmeans.
Bandwidth for density estimation, equal to the standard deviation of the kernel density.
Alternative way to specify the bandwidth, to provide backward compatibility.
Tolerance limit for declaring algorithm convergence. Convergence
is declared before maxiter
iterations
whenever the maximum change in any coordinate of the
lambda
(mixing proportion estimates) and mu
(means)
vector does not exceed eps
.
The maximum number of iterations allowed, for both
stochastic and non-stochastic versions;
for non-stochastic algorithms (stochastic = FALSE
), convergence
may be declared before maxiter
iterations (see eps
above).
Flag, if FALSE (the default), runs the non-stochastic version
of the algorithm, as in Benaglia et al (2009). Set to TRUE to
run a stochastic version which simulates the posteriors at each
iteration (as in Bordes et al, 2007),
and runs for maxiter
iterations.
If TRUE, print updates for every iteration of the algorithm as it runs
Benaglia, T., Chauveau, D., and Hunter, D. R., An EM-like algorithm for semi- and non-parametric estimation in multivariate mixtures, Journal of Computational and Graphical Statistics, 18, 505-526, 2009.
Benaglia, T., Chauveau, D., Hunter, D. R., and Young, D. mixtools: An R package for analyzing finite mixture models. Journal of Statistical Software, 32(6):1-29, 2009.
Bordes, L., Chauveau, D., and Vandekerkhove, P. (2007), An EM algorithm for a semiparametric mixture model, Computational Statistics and Data Analysis, 51: 5429-5443.
plot.npEM
, rnormmix
,
npEM
, spEMsymlocN01
, plotseq.npEM
## Example from a normal location mixture
set.seed(100)
n <- 200
lambda <- c(1/3,2/3)
mu <- c(0, 4); sigma<-rep(1, 2)
x <- rnormmix(n, lambda, mu, sigma)
out.stoc <- spEMsymloc(x, mu0=c(-1, 2), stochastic=TRUE)
out.nonstoc <- spEMsymloc(x, mu0=c(-1, 2))
Run the code above in your browser using DataLab