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,
cov_row_init = NULL,
cov_col_init = NULL,
diag = "none",
max_iter = 100L,
lambda = 0,
silent = FALSE,
nthreads = 1L
)
Arguments
X |
a 3d array of dimension |
cov_row_init |
matrix. Initial |
cov_col_init |
matrix. Initial |
diag |
Character. If "none" (default) all entries of |
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. |
nthreads |
Integer. If 1 (default), all computations are carried out sequentially.
If larger then 1, matrix multiplication in the flip-flop algorithm is carried out in parallel using |
Value
A list containing the following:
mu |
Estimated |
cov_row |
Estimated |
cov_col |
Estimated |
cov_row_inv |
Inverse of |
cov_col_inv |
Inverse of |
norm |
Frobenius 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)