Learn R Programming

mclust (version 2.1-14)

sim: Simulate from Parameterized MVN Mixture Models

Description

Simulate data from parameterized MVN mixture models.

Usage

sim(modelName, mu, ..., seed = 0)

Arguments

modelName
A character string indicating the model. Possible models: "E": equal variance (one-dimensional) "V": variable variance (one-dimensional) "EII": spherical, equal volume "VII": spherical, unequal volume "EEI": diagonal, equal volume, equal shape "V
mu
The mean for each component. If there is more than one component, mu is a matrix whose columns are the means of the components.
...
Arguments for model-specific functions. Specifically:
  • An argument describing the variance (depends on the model):[object Object],[object Object],[object Object],[object Object],The form of the variance specification is the same as for the out
seed
A integer between 0 and 1000, inclusive, for specifying a seed for random class assignment. The default value is 0.

Value

  • A data set consisting of n points simulated from the specified MVN mixture model.

References

C. Fraley and A. E. Raftery (2002a). Model-based clustering, discriminant analysis, and density estimation. Journal of the American Statistical Association 97:611-631. See http://www.stat.washington.edu/mclust. C. Fraley and A. E. Raftery (2002b). MCLUST:Software for model-based clustering, density estimation and discriminant analysis. Technical Report, Department of Statistics, University of Washington. See http://www.stat.washington.edu/mclust.

Details

This function can be used with an indirect or list call using do.call, allowing the output of e.g. mstep, em, me, or EMclust to be passed directly without the need to specify individual parameters as arguments.

See Also

simE, ..., simVVV, EMclust, mstep, do.call

Examples

Run this code
data(iris)
irisMatrix <- as.matrix(iris[,1:4])

irisBic <- EMclust(irisMatrix)
irisSumry <- summary(irisBic,irisMatrix)
names(irisSumry)
irisSim <- sim(modelName = irisSumry$modelName, n = dim(irisMatrix)[1],
       mu = irisSumry$mu, decomp = irisSumry$decomp, pro = irisSumry$pro)
irisSim <- do.call("sim", irisSumry) ## alternative call

par(pty = "s", mfrow = c(1,2))
dimens <- c(1,2)
xlim <- range(rbind(irisMatrix,irisSim)[,dimens][,1])
ylim <- range(rbind(irisMatrix,irisSim)[,dimens][,2])

cl <- irisSumry$classification
coordProj(irisMatrix, par=irisSumry, classification=cl, dimens=dimens, 
          xlim=xlim, ylim=ylim)
cl <- attr(irisSim,"classification")
coordProj(irisSim, par=irisSumry, classification=cl, dimens=dimens, 
          xlim=xlim, ylim=ylim)

irisSumry3 <- summary(irisBic,irisMatrix, G=3)
irisSim3 <- do.call("sim", c(list(n = 500, seed = 1), irisSumry3))
clPairs(irisSim3, cl = attr(irisSim3,"classification"))

Run the code above in your browser using DataLab