mmle {robustmatrix}R Documentation

Maximum Likelihood Estimation for Matrix Normal Distribtuion

Description

mmle computes the Maximum Likelihood Estimators (MLEs) for the matrix normal distribution using the iterative flip-flop algorithm (Dutilleul 1999).

Usage

mmle(X, max_iter = 100L, lambda = 0, silent = FALSE)

Arguments

X

a 3d array of dimension (p,q,n), containing n matrix-variate samples of p rows and q columns in each slice.

max_iter

upper limit of iterations.

lambda

a smooting parameter for the rowwise and columnwise covariance matrices.

silent

Logical. If FALSE (default) warnings and errors are printed.

Value

A list containing the following:

mu

Estimated p \times q mean matrix.

cov_row

Estimated p times p rowwise covariance matrix.

cov_col

Estimated q times q columnwise covariance matrix.

cov_row_inv

Inverse of cov_row.

cov_col_inv

Inverse of cov_col.

norm

Forbenius norm of squared differences between covariance matrices in final iteration.

iterations

Number of iterations of the mmle procedure.

References

Dutilleul P (1999). “The mle algorithm for the matrix normal distribution.” Journal of Statistical Computation and Simulation, 64(2), 105-123. doi:10.1080/00949659908811970.

See Also

For robust parameter estimation use mmcd.

Examples

n = 1000; p = 2; q = 3
mu = matrix(rep(0, p*q), nrow = p, ncol = q)
cov_row = matrix(c(1,0.5,0.5,1), nrow = p, ncol = p)
cov_col = matrix(c(3,2,1,2,3,2,1,2,3), nrow = q, ncol = q)
X <- rmatnorm(n = 1000, mu, cov_row, cov_col)
par_mmle <- mmle(X)

[Package robustmatrix version 0.1.2 Index]