Learn R Programming

fastM (version 0.0-4)

DUEMBGENshape: Duembgen's Shape Matrix

Description

Iterative algorithm to estimate Duembgen's shape matrix using a partial Newton-Raphson approach.

Usage

DUEMBGENshape(X, nmax = 500, eps = 1e-06, maxiter = 100, perm = FALSE)

Arguments

X

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

nmax

integer, if the sample size n (number of rows of X) is smaller than nmax, then all n(n-1)/2 pairwise differences will be computed and used in the algorithm. If n is larger, then the algorithm avoids storing all the pairwise differences and is more memory efficient.

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.

perm

logical. If TRUE the rows of X will be randomly permuted before starting the computations. See details.

Value

A list containing:

Sigma

Estimated shape matrix.

iter

Number of iterations of the algorithm.

Details

The estimate is based on the new fast algorithm described in Duembgen et al. (2016). Note that Duembgen's shape matrix is standardized such that it has determinant 1.

The function does not check if there are several identical observations. In that case the function will fail.

To get a good initial value for the algorithm, the estimator is first computed based on the pairwise differences of successive observations. Therefore the order of the rows of X is supposed to be random. If this is not the case, the data should be first permuted using the argument perm.

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

References

Duembgen, L. (1998), On Tyler's M-functional of scatter in high dimension, Annals of Institute of Statistical Mathematics, 50, 471--491.

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

tyler.shape

Examples

Run this code
# NOT RUN {
DUEMBGENshape(longley)
DUEMBGENshape(longley, nmax=10)
# compare to
# library(ICSNP)
# duembgen.shape(longley)
# }

Run the code above in your browser using DataLab