Learn R Programming

robustmatrix (version 0.1.3)

mmle: 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 Dutilleul1999robustmatrix.

Usage

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

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.

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.

References

See Also

For robust parameter estimation use mmcd.

Examples

Run this code
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)

Run the code above in your browser using DataLab