Learn R Programming

GMCM

Fast estimation of Gaussian Mixture Copula Models

The GMCM package (Bilgrau et. al., 2016) offers R functions that very fast perform high-dimensional meta-analysis (Li et. al., 2011) and general unsupervised cluster analysis (Tewari et. al., 2011) using Gaussian Copula Mixture Models. Online documentation is available here.

Gaussian copula mixture models (GMCMs) are a very flexible alternative to regular Gaussian mixture models (GMMs) in unsupervised cluster analysis of continuous data where non-normal clusters are present. GMCMs models the ranks of the observed data and are thus invariant to monotone increasing transformations of the data, i.e. they are semi-parametric and only the ordering of the data is important providing needed flexibility. A special-case of GMCMs can be used for a novel meta-analysis approach in high-dimensional settings. In this context, the model tries to cluster results into two groups which agree and do not agree on statistical evidence. These two groups corresponds to a reproducible and irreproducible group.

The optimization of the complicated likelihood function is difficult, however. GMCM utilizes Rcpp and RcppArmadillo to evaluate the likelihood function quickly and arrive at a parameter estimate using either standard numerical optimization routines or an pseudo EM algorithm.

Additional information, documentation, help, and examples can be found by here or by running ?GMCM in R. The paper[1] is also found as a vignette by vignette("GMCM-JStatSoft") or on the official website online.. The core user functions of GMCM are fit.full.GMCM and fit.meta.GMCM.

Installation

The released and tested version of GMCM is available at CRAN (Comprehensive R Archive Network). It can be installed from within R by running

install.packages("GMCM")

If you wish to install the latest version of GMCM directly from the master branch at GitHub, run

#install.packages("remotes")  # Install remotes if needed
remotes::install_github("AEBilgrau/GMCM")

Note, that this version is in development and is likely different from the version at CRAN. As such, it may be unstable. Be sure that you have the package development prerequisites if you wish to install the package from the source.

When installed, run GMCM::runGMCM() to launch a local instance of the GMCM shiny application also available online at shinyapps.io. Run news(package = "GMCM") to view the latest changes of GMCM or visit here.

For previous versions of GMCM, visit the old releases at GitHub or the archive at CRAN.

Usage

As noted above, the usage of GMCM comes in two different applications; one general and one special.

Special GMCMs

An example of using the package to fit special GMCMs for meta analysis of is described here vignette("usage-example-special-model"). This model is a specific special case of the general GMCMs.

General GMCMs

An example of unsupervised clustering using the package is found with vignette("usage-example-general-model") for general purposes.

Shiny

The package also provides a graphical user interface via Shiny for both its uses. See vignette("usage-shiny-graphical-interface").

References

  1. Anders Ellern Bilgrau, Poul Svante Eriksen, Jakob Gulddahl Rasmussen, Hans Erik Johnsen, Karen Dybkaer, Martin Boegsted (2016). GMCM: Unsupervised Clustering and Meta-Analysis Using Gaussian Mixture Copula Models. Journal of Statistical Software, 70(2), 1-23. doi:10.18637/jss.v070.i02

Copy Link

Version

Install

install.packages('GMCM')

Monthly Downloads

422

Version

1.4.1

License

GPL (>= 2)

Issues

Pull Requests

Stars

Forks

Maintainer

Anders Ellern Bilgrau

Last Published

August 25th, 2026

Functions in GMCM (1.4.1)

print.theta

Print method for theta class
inv.logit

Logit and inverse logit transforms
plot.theta

Plotting method for "theta" objects
summary.theta

Summary method for theta class
runGMCM

Run the GMCM shiny application
rtheta

Get random parameters for the Gaussian mixture (copula) model
inv.tt

Reparametrization of GMCM parameters
u133VsExon

Reproducibility between U133 plus 2 and Exon microarrays
inv.rho.transform

Transformation of the correlation to real line and its inverse
GMCM-package

Fast optimization of Gaussian Mixture Copula Models
Uhat

Fast ranking function
EMAlgorithm

EM algorithm for Gaussian mixture models
as.theta

Coerce a list to a theta object
PseudoEMAlgorithm

EM-like algorithm for the GMCM
colSds

Row and column standard deviations
classify

Classify observations
SimulateGMCMData

Simulation from Gaussian mixture (copula) models
choose.theta

Heuristically chosen starting value of theta
dmvnormal

Multivariate Gaussian density and simulation
fit.meta.GMCM

Estimate GMCM parameters of the special model
is.theta

Check if parameters are valid
get.IDR

Posterior class probabilities, local, and adjusted IDRs.
fit.full.GMCM

Estimate GMCM parameters of the general model
full2meta

Convert between parameter formats
EStep

Steps of the EM algorithm for a Gaussian Mixture model
cummean

Cumulative mean values
dgmcm.loglik

Probability, density, and likelihood functions of the Gaussian mixture (copula) model
freshVsFrozen

Reproducibility between Fresh and Frozen B-cell subtypes
goodness.of.fit

Goodness of fit for the general GMCM