rmatrixnorm: Matrix variate Normal distribution functions

Description Usage Arguments Value References See Also Examples

View source: R/matrixnorm.R

Description

Density and random generation for the matrix variate normal distribution

Usage

1
2
3
4
5
6
rmatrixnorm(n, mean, L = diag(dim(as.matrix(mean))[1]),
  R = diag(dim(as.matrix(mean))[2]), U = L %*% t(L), V = t(R) %*%
  R, list = FALSE, array = NULL, force = FALSE)

dmatrixnorm(x, mean = matrix(0, p, n), L = diag(p), R = diag(n),
  U = L %*% t(L), V = t(R) %*% R, log = FALSE)

Arguments

n

number of observations to generate - must be a positive integer.

mean

p * q matrix of means

L

p * p matrix specifying relations among the rows. By default, an identity matrix.

R

q * q matrix specifying relations among the columns. By default, an identity matrix.

U

LL^T - p * p positive definite variance-covariance matrix for rows, computed from L if not specified.

V

R^T R - q * q positive definite variance-covariance matrix for columns, computed from R if not specified.

list

Defaults to FALSE . If this is TRUE , then the output will be a list of matrices.

array

If n = 1 and this is not specified and list is FALSE , the function will return a matrix containing the one observation. If n > 1 , should be the opposite of list . If list is TRUE , this will be ignored.

force

If TRUE, will take the input of L and/or R directly - otherwise computes U and V and uses Cholesky decompositions. Useful for generating degenerate normal distributions. Will also override concerns about potentially singular matrices unless they are not, in fact, invertible.

x

quantile for density

log

logical; if TRUE, probabilities p are given as log(p).

Value

rmatrixnorm returns either a list of n p * q matrices or a p * q * n array.

dmatrixnorm returns the density at x.

References

Gupta, Arjun K, and Daya K Nagar. 1999. Matrix Variate Distributions. Vol. 104. CRC Press. ISBN:978-1584880462

See Also

rmatrixt, rmatrixinvt, rnorm and Distributions

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
set.seed(20180202)
# a draw from a matrix variate normal with a certain mean
# and row-wise covariance
rmatrixnorm(n=1,mean=matrix(c(100,0,-100,0,25,-1000),nrow=2),
   L=matrix(c(2,1,0,.1),nrow=2),list=FALSE)
set.seed(20180202)
# another way of specifying this - note the output is equivalent
A <- rmatrixnorm(n=10,mean=matrix(c(100,0,-100,0,25,-1000),nrow=2),
   L=matrix(c(2,1,0,.1),nrow=2),list=TRUE)
A[[1]]
# demonstrating the dmatrixnorm function
dmatrixnorm(A[[1]],mean=matrix(c(100,0,-100,0,25,-1000),nrow=2),
  L=matrix(c(2,1,0,.1),nrow=2),log=TRUE )

MixMatrix documentation built on Nov. 15, 2019, 1:07 a.m.