Learn R Programming

mclust (version 3.4.7)

mvn: Univariate or Multivariate Normal Fit

Description

Computes the mean, covariance, and loglikelihood from fitting a single Gaussian to given data (univariate or multivariate normal).

Usage

mvn( modelName, data, prior = NULL, warn = NULL, ...)

Arguments

modelName
A character string representing a model name. This can be either "Spherical", "Diagonal", or "Ellipsoidal" or else "X" for one-dimensional data, "XII" for a spherical Gaussian, "XXI" for a diagonal Gaussia
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.
prior
Specification of a conjugate prior on the means and variances. The default assumes no prior.
warn
A logical value indicating whether or not a warning should be issued whenever a singularity is encountered. The default is set in .Mclust$warn.
...
Catches unused arguments in indirect or list calls via do.call.

Value

  • A list including the following components:
  • modelNameA character string identifying the model (same as the input argument).
  • parameters[object Object],[object Object]
  • loglikThe log likelihood for the data in the mixture model.
  • Attributes:
    • "WARNING"An appropriate warning if problems are encountered in the computations.

References

C. Fraley and A. E. Raftery (2002). Model-based clustering, discriminant analysis, and density estimation. Journal of the American Statistical Association 97:611-631. C. Fraley and A. E. Raftery (2006). MCLUST Version 3 for R: Normal Mixture Modeling and Model-Based Clustering, Technical Report no. 504, Department of Statistics, University of Washington.

See Also

mvnX, mvnXII, mvnXXI, mvnXXX, mclustModelNames

Examples

Run this code
n <- 1000

set.seed(0)
x <- rnorm(n, mean = -1, sd = 2)
mvn(modelName = "X", x) 

mu <- c(-1, 0, 1)

set.seed(0)
x <- sweep(matrix(rnorm(n*3), n, 3) %*% (2*diag(3)), 
           MARGIN = 2, STATS = mu, FUN = "+")
mvn(modelName = "XII", x) 
mvn(modelName = "Spherical", x) 

set.seed(0)
x <- sweep(matrix(rnorm(n*3), n, 3) %*% diag(1:3), 
           MARGIN = 2, STATS = mu, FUN = "+")
mvn(modelName = "XXI", x)
mvn(modelName = "Diagonal", x)

Sigma <- matrix(c(9,-4,1,-4,9,4,1,4,9), 3, 3)
set.seed(0)
x <- sweep(matrix(rnorm(n*3), n, 3) %*% chol(Sigma), 
           MARGIN = 2, STATS = mu, FUN = "+")
mvn(modelName = "XXX", x) 
mvn(modelName = "Ellipsoidal", x)

Run the code above in your browser using DataLab