Cholesky Decomposition of the Wishart Distribution

Sampling from the Cholesky factorization of a Wishart random variable, sampling from the inverse Wishart distribution, sampling from the Cholesky factorization of an inverse Wishart random variable, sampling from the pseudo Wishart distribution, sampling from the generalized inverse Wishart distribution, computing densities for the Wishart and inverse Wishart distributions, and computing the multivariate gamma and digamma functions.


Project Status: Active – The project has reached a stable, usable state and is being actively developed. Build Status AppVeyor Build Status codecov Licence lifecycle


minimal R version CRAN_Status_Badge packageversion


Last-changedate

The most common use for this package is likely fast sampling from the inverse Wishart or use of the multivariate gamma or digamma functions. This is a package for fast computation of various functions related to the Wishart distribution, such as sampling from the Cholesky factorization of the Wishart, sampling from the inverse Wishart, sampling from the Cholesky factorization of the inverse Wishart, sampling from the pseudo Wishart, computing densities for the Wishart and inverse Wishart, and computing a few auxiliary functions such as the multivariate gamma and digamma functions. Many of these functions are written in C to maximize efficiency.

The output of the sampling functions is in the same format as the output of stats::rWishart().

The main idea: sampling for multivariate or matrix variate statistics often makes use of distributions related to the Wishart. There are implementations in a few packages but they are often in R and much slower than the basic stats::rWishart() or there is a lot of associated overhead in the package. Here, then, is a small package with some of those distributions and related functions. As the name suggests, the initial purpose was sampling from the Cholesky factorization of a Wishart distribution.

Usage

The package offers the following distributions:

  • The inverse Wishart:
rInvWishart(n = 1,df = 5,Sigma = diag(4)))
  • The Cholesky decomposition of the inverse Wishart:
rInvCholWishart(n = 1,df = 5,Sigma = diag(4)))
  • The Cholesky decomposition of the Wishart
rCholWishart(n = 1,df = 5,Sigma = diag(4)))
  • The pseudo Wishart and its pseudo-inverse, the generalized inverse Wishart (df less than the dimension of Sigma minus 1):
rPseudoWishart(n = 1,df = 3,Sigma = diag(5)))
rGenInvWishart(n = 1,df = 3,Sigma = diag(5)))
  • The package also offers density functions for the Wishart and inverse Wishart distributions:
dInvWishart(x = diag(4), df = 5, Sigma = diag(4), log = TRUE)
dWishart(x = diag(4), df = 5, Sigma = diag(4), log = TRUE)

In addition to this, the package offers the multivariate gamma function and multivariate digamma function, the multivariate counterparts of the gamma and digamma (derivative of the log of the gamma) functions.

mvgamma(x = 5, p = 3)
mvdigamma(x = 5, p = 3)

I suspect the most useful functions for most people will be the mvgamma and rInvWishart functions.

Installation

Now available on CRAN, install it at:

install.packages('CholWishart')

Install the latest development version at: devtools::install_github("gzt/CholWishart")

Contributing

Please note that the 'CholWishart' project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.

News

CholWishart 1.0.0

  • Tweak the documentation
  • Port pseudo-Wishart to C, gen inv based on pseudo-Wishart

CholWishart 0.9.4

  • Add new functions to the vignette
  • Add generalized inverse Wishart (pseudo inverse of the pseudo Wishart)
  • Add pseudo-Wishart (Wishart distribution based on fewer observations than the dimension of the covariance matrix).
  • Add contributor guidelines and code of conduct.

CholWishart 0.9.3

  • Minor update to internal functions

CholWishart 0.9.2

  • Adding possibility of array input to density functions.

CholWishart 0.9.1

  • Finalize edits to documentation including additional references.

CholWishart 0.9.0.9002

  • Add more documentation, add more references to documentation, clean LaTeX equations in documentation.

CholWishart 0.9.0.9001

  • Add additional tests for dWishart and dInvWishart functions
  • Add references and equations to help files
  • Add additional tests for complex entries (should fail) and other erroneous input

CholWishart 0.9.0

  • Feature complete, fully documented, and the math should be correct.

CholWishart 0.1.0

  • Breaking off from matrixdist

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.

install.packages("CholWishart")

1.0.1 by Geoffrey Thompson, 2 months ago


https://gzt.github.io/CholWishart


Report a bug at https://github.com/gzt/CholWishart/issues


Browse source code at https://github.com/cran/CholWishart


Authors: Geoffrey Thompson [aut, cre] , R Core Team [ctb]


Documentation:   PDF Manual  


GPL (>= 3) license


Suggests testthat, knitr, rmarkdown, covr


Imported by MixMatrix, bgsmtr.


See at CRAN