Learn R Programming

MixtureInf (version 1.1)

pmle.norm: compute the PMLE or MLE of the parameters under a mixture of normals with unequal variance

Description

Compute the PMLE or MLE of the parameters under a mixture of normals with unequal variance.

Usage

pmle.norm(x, m0 = 1, lambda = 0, inival=NULL, len = 10, niter = 50, tol = 1e-06, rformat = FALSE)

Arguments

x
data, can be either a vector or a matrix with the 1st column being the observed data values and the 2nd column being the corresponding frequencies.
m0
order of the finite mixture model, default value: m0 = 1.
lambda
level of penalty for mixing proportions, default value: lambda = 0.
inival
initial values for the EM-algorithm, a 3m0-dimension vector including m0 mixing proportions, m0 component means and m0 component variances, or a matrix with 3m0 columns, default value: inival = NULL. (if not provided, random initial values are used.)
len
number of random initial values for the EM-algorithm, default value: len = 10.
niter
number of iterations for all initial values in the EM-algorithm. The algorithm runs EM-iteration niter times from each initial value. The iteration will restart from the parameter value with the highest likelihood value at the point and run until convergence. default value: niter = 50.
tol
tolerance level for the convergence of the EM-algorithm, default value: tol = 1e-6.
rformat
form of the digital output: default of R package is used when rformat = T; If rformat = T, the digital output is rounded to the 3rd dicimal place if it is larger than 0.001, keeps 3 significant digits otherwise. The default value of rformat is F.

Value

Return the PMLE or MLE of the parameters with order = m0 (mixing proportions, mixing means and mixing variances), log-likelihood value at the PMLE or MLE and the penalized log-likelihood value at the PMLE.

See Also

emtest.norm, plotmix.norm, rmix.norm

Examples

Run this code
#load the pearson's crab data,
#fit the 2 and 3 component normal mixture models,
#plot the histgorams of the observations and the fitted densities.
data(pearson)
out1 <- pmle.norm(pearson,2,1)
plotmix.norm(pearson,out1)

## Not run: 
# out2 <- pmle.norm(pearson,3,1)
# plotmix.norm(pearson,out2)
# par(mfrow=c(1,1))
# ## End(Not run)

Run the code above in your browser using DataLab