Learn R Programming

fastM (version 0.0-4)

MVTMLE: M-estimator of Location and Scatter Using Weights Coming From the Multivariate t-distribution

Description

The algorithm of this function is based on a partial Newton approach and should be faster than the traditional fixed-point algorithm. If the data follows a multivariate t-distribution with the correctly specified degrees of freedom this function gives the maximum likelihood estimate of location and scatter.

Usage

MVTMLE(X, nu = 1, location = TRUE, eps = 1e-06, maxiter = 100)

Arguments

X

numeric data matrix or dataframe. Missing values are not allowed.

nu

assumed degrees of freedom of the t-distribution. Default is '1' which corresponds to the Cauchy distribution.

location

logical or numeric. If FALSE, it is assumed that the scatter should be computed wrt to the origin. If TRUE the location will be estimated and if it is a numeric vector it will be computed wrt to this vector.

eps

convergence tolerance, which means that the algorithm stops when the Frobenius norm of the gradient is smaller than eps.

maxiter

maximum number of iterations.

Value

A list containing:

mu

Estimated location if location=TRUE, otherwise the user specified location.

Sigma

Estimated scatter matrix.

iter

Number of iterations of the algorithm.

Details

The assumed degree of freedom nu must be at least 1 when the location and scatter should be estimated. If only the scatter is to be estimated, then it needs to be larger than zero only.

In case maxiter is reached before convergence, the estimate at that iteration is returned and a warning is given.

References

Kent, J.T., Tyler, D.E. and Vardi, Y. (1994), A curious likelihood identity for the multivariate t-distribution, Communications in Statistics, Theory and Methods, 23, 441--453.

Duembgen, L., Nordhausen, K. and Schuhmacher, H. (2016), New algorithms for M-estimation of multivariate location and scatter, Journal of Multivariate Analysis, 144, 200--217. 10.1016/j.jmva.2015.11.009

See Also

cov.trob, tM, MVTMLEsymm

Examples

Run this code
# NOT RUN {
MVTMLE(longley)
# compare to
# library(ICS)
# tM(longley)
# library(MASS)
# cov.trob(longley, nu=1, tol = 1e-06, maxit = 100)
# }

Run the code above in your browser using DataLab