cdens {mclust}R Documentation

Component Density for Parameterized MVN Mixture Models

Description

Computes component densities for observations in parameterized MVN mixture models.

Usage

cdens(modelName, data, mu, ...)

Arguments

modelName A character string indicating the model. Possible models:

"E" for spherical, equal variance (one-dimensional)
"V" for spherical, variable variance (one-dimensional)

"EII": spherical, equal volume
"VII": spherical, unequal volume
"EEI": diagonal, equal volume, equal shape
"VEI": diagonal, varying volume, equal shape
"EVI": diagonal, equal volume, varying shape
"VVI": diagonal, varying volume, varying shape
"EEE": ellipsoidal, equal volume, shape, and orientation
"EEV": ellipsoidal, equal volume and equal shape
"VEV": ellipsoidal, equal shape
"VVV": ellipsoidal, varying volume, shape, and orientation

For fitting a single Gaussian:

"X": one-dimensional
"XII": spherical
"XXI": diagonal
"XXX": ellipsoidal
data A numeric vector, matrix, or data frame of observations. Categorical variables are not allowed. If a matrix or data frame, rows correspond to observations and columns correspond to variables.
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:
  • logarithm: A logical value indicating whether or not the logarithm of the component densities should be returned. The default is to return the component densities, obtained from the log component densities by exponentiation.
  • An argument describing the variance (depends on the model):
    sigmasq
    for the one-dimensional models ("E", "V") and spherical models ("EII", "VII"). This is either a vector whose kth component is the variance for the kth component in the mixture model ("V" and "VII"), or a scalar giving the common variance for all components in the mixture model ("E" and "EII").
    decomp
    for the diagonal models ("EEI", "VEI", "EVI", "VVI") and some ellipsoidal models ("EEV", "VEV"). This is a list with the following components:
    d
    The dimension of the data.
    G
    The number of components in the mixture model.
    scale
    Either a G-vector giving the scale of the covariance (the dth root of its determinant) for each component in the mixture model, or a single numeric value if the scale is the same for each component.
    shape
    Either a G by d matrix in which the kth column is the shape of the covariance matrix (normalized to have determinant 1) for the kth component, or a d-vector giving a common shape for all components.
    orientation
    Either a d by d by G array whose [,,k]th entry is the orthonomal matrix of eigenvectors of the covariance matrix of the kth component, or a d by d orthonormal matrix if the mixture components have a common orientation. The orientation component of decomp can be omitted in spherical and diagonal models, for which the principal components are parallel to the coordinate axes so that the orientation matrix is the identity.
    Sigma
    for the equal variance model "EEE". A d by d matrix giving the common covariance for all components of the mixture model.
    sigma
    for the unconstrained variance model "VVV". A d by d by G matrix array whose [,,k]th entry is the covariance matrix for the kth component of the mixture model.
    The form of the variance specification is the same as for the output for the em, me, or mstep methods for the specified mixture model.
  • eps: A scalar tolerance for deciding when to terminate computations due to computational singularity in covariances. Smaller values of eps allow computations to proceed nearer to singularity. The default is .Mclust\$eps.
    For those models with iterative M-step ("VEI", "VEV"), two values can be entered for eps, in which case the second value is used for determining singularity in the M-step.
  • warnSingular: A logical value indicating whether or not a warning should be issued whenever a singularity is encountered. The default is .Mclust\$warnSingular.

Value

A numeric matrix whose [i,j]th entry is the density of observation i in component j. The densities are not scaled by mixing proportions.

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.

See Also

cdensE, ..., cdensVVV, dens, EMclust, mstep, mclustDAtrain, mclustDAtest, mclustOptions, do.call

Examples

n <- 100 ## create artificial data

set.seed(0)
x <- rbind(matrix(rnorm(n*2), n, 2) %*% diag(c(1,9)),
           matrix(rnorm(n*2), n, 2) %*% diag(c(1,9))[,2:1])
xclass <- c(rep(1,n),rep(2,n))
clPairs(x, cl = xclass, sym = c("1","2")) ## display the data

set.seed(0)
I <- sample(1:(2*n)) ## random ordering of the data
x <- x[I, ]
xclass <- xclass[I]

odd <- seq(1, 2*n, by = 2)
oddBic <- EMclust(x[odd, ]) 
oddSumry <- summary(oddBic, x[odd, ]) ## best parameter estimates
names(oddSumry)

even <- odd + 1
temp <- cdens(modelName = oddSumry$modelName, data = x[even, ],
              mu = oddSumry$mu, decomp = oddSumry$decomp)
cbind(class = xclass[even], temp)

## alternative call 

## Not run: 
temp <- do.call( "cdens", c(list(data = x[even, ]), oddSumry))
cbind(class = xclass[even], temp)
## End(Not run)

[Package mclust version 2.1-11 Index]