# rmatrixt: Distribution functions for the matrix variate t distribution. In MixMatrix: Classification with Matrix Variate Normal and t Distributions

## Description

Density and random generation for the matrix variate t distribution.

## Usage

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23``` ```rmatrixt( n, df, 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 ) dmatrixt( x, df, 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 for generation `df` degrees of freedom (>0, may be non-integer), `df = 0, Inf` is allowed and will return a normal distribution. `mean` p * q This is really a 'shift' rather than a mean, though the expected value will be equal to this if df > 2 `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 matrix for rows, computed from L if not specified. `V` R^T R - q * q positive definite 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` In `rmatrix`: if `TRUE`, will take the input of `R` directly - otherwise uses `V` and uses Cholesky decompositions. Useful for generating degenerate t-distributions. Will also override concerns about potentially singular matrices unless they are not, in fact, invertible. `x` quantile for density `log` logical; in `dmatrixt`, if `TRUE`, probabilities `p` are given as `log(p)`.

## Details

The matrix t-distribution is parameterized slightly differently from the univariate and multivariate t-distributions

• the variance is scaled by a factor of `1/df`. In this parameterization, the variance for a 1 * 1 matrix variate t-distributed random variable with identity variance matrices is 1/(df-2) instead of df/(df-2). A Central Limit Theorem for the matrix variate T is then that as `df` goes to infinity, MVT(0, df, I_p, df*I_q) converges to MVN(0,I_p,I_q).

## Value

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

`dmatrixt` returns the density at `x`.

## References

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

Dickey, James M. 1967. “Matricvariate Generalizations of the Multivariate t Distribution and the Inverted Multivariate t Distribution.” Ann. Math. Statist. 38 (2): 511–18. doi: 10.1214/aoms/1177698967

`rmatrixnorm()`, `rmatrixinvt()`,`rt()` and `stats::Distributions()`.
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14``` ```set.seed(20180202) # random matrix with df = 10 and the given mean and L matrix rmatrixt( n = 1, df = 10, mean = matrix(c(100, 0, -100, 0, 25, -1000), nrow = 2), L = matrix(c(2, 1, 0, .1), nrow = 2), list = FALSE ) # comparing 1-D distribution of t to matrix summary(rt(n = 100, df = 10)) summary(rmatrixt(n = 100, df = 10, matrix(0))) # demonstrating equivalence of 1x1 matrix t to usual t set.seed(20180204) x <- rmatrixt(n = 1, mean = matrix(0), df = 1) dt(x, 1) dmatrixt(x, df = 1) ```