| rwish | R Documentation | 
Generates a random samples from a Wishart distribution defined as W(\Psi, \nu), or an Inverse-Wishart distribution defined as W^{-1}(\Psi, \nu).
rwish(n, Psi, nu, inv = FALSE)
n | 
 Number of samples to draw.  | 
Psi | 
 Scale matrix.  | 
nu | 
 Degrees of freedom.  | 
inv | 
 Logical. Setting   | 
Setting inv = TRUE replaces \Psi by Psi^{-1} and inverts the output random matrices, such that they are being generated from an Inverse-Wishart W^{-1}(\Psi, \nu) distribution.
Returns an array of Wishart (or Inverse-Wishart) draws of size c(nrow(Psi),ncol(Psi),n).
rniw()
d <- 4 # number of dimensions
nu <- 7 # degrees of freedom
Psi <- crossprod(matrix(rnorm(d^2), d, d)) # scale matrix
n <- 1e4
Sigma <- rwish(n, Psi, nu)
# for any vector a, X = (a' Sigma a) has a const * chi^2 distribution
a <- rnorm(d)
X <- apply(Sigma, 3, function(S) crossprod(a, S %*% a))
const <- c(a %*% Psi %*% a)
hist(X, breaks = 100, freq = FALSE,
     main = parse(text = "\"Histogram of \"*X==a*minute*Sigma*a"),
     xlab = parse(text = "X==a*minute*Sigma*a"))
curve(dchisq(x/const, df = nu)/const,
      from = min(X), to = max(X), col = "red", add = TRUE)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.