mvnormalmixEM | R Documentation |
Return EM algorithm output for mixtures of multivariate normal distributions.
mvnormalmixEM(x, lambda = NULL, mu = NULL, sigma = NULL, k = 2, arbmean = TRUE, arbvar = TRUE, epsilon = 1e-08, maxit = 10000, verb = FALSE)
x |
A matrix of size nxp consisting of the data. |
lambda |
Initial value of mixing proportions. Entries should sum to
1. This determines number of components. If NULL, then |
mu |
A list of size k consisting of initial values for the p-vector mean parameters.
If NULL, then the vectors are generated from a normal distribution with
mean and standard deviation according to a binning method done on the data.
If both |
sigma |
A list of size k consisting of initial values for the pxp variance-covariance matrices.
If NULL, then |
k |
Number of components. Ignored unless |
arbmean |
If TRUE, then the component densities are allowed to have different |
arbvar |
If TRUE, then the component densities are allowed to have different |
epsilon |
The convergence criterion. |
maxit |
The maximum number of iterations. |
verb |
If TRUE, then various updates are printed during each iteration of the algorithm. |
normalmixEM
returns a list of class mixEM
with items:
x |
The raw data. |
lambda |
The final mixing proportions. |
mu |
A list of with the final mean vectors. |
sigma |
A list with the final variance-covariance matrices. |
loglik |
The final log-likelihood. |
posterior |
An nxk matrix of posterior probabilities for observations. |
all.loglik |
A vector of each iteration's log-likelihood. |
restarts |
The number of times the algorithm restarted due to unacceptable choice of initial values. |
ft |
A character vector giving the name of the function. |
McLachlan, G. J. and Peel, D. (2000) Finite Mixture Models, John Wiley and Sons, Inc.
normalmixEM
##Fitting randomly generated data with a 2-component location mixture of bivariate normals. set.seed(100) x.1 <- rmvnorm(40, c(0, 0)) x.2 <- rmvnorm(60, c(3, 4)) X.1 <- rbind(x.1, x.2) mu <- list(c(0, 0), c(3, 4)) out.1 <- mvnormalmixEM(X.1, arbvar = FALSE, mu = mu, epsilon = 1e-02) out.1[2:5] ##Fitting randomly generated data with a 2-component scale mixture of bivariate normals. x.3 <- rmvnorm(40, c(0, 0), sigma = matrix(c(200, 1, 1, 150), 2, 2)) x.4 <- rmvnorm(60, c(0, 0)) X.2 <- rbind(x.3, x.4) lambda <- c(0.40, 0.60) sigma <- list(diag(1, 2), matrix(c(200, 1, 1, 150), 2, 2)) out.2 <- mvnormalmixEM(X.2, arbmean = FALSE, sigma = sigma, lambda = lambda, epsilon = 1e-02) out.2[2:5]
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.