Learn R Programming

mclust (version 2.1-14)

cdens: 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, eq
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,

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

Run this code
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 

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

Run the code above in your browser using DataLab