Learn R Programming

fastM (version 0.0-4)

MVTMLEsymm: Symmetrized M-estimator of Scatter Using Weights Coming From the t-distribution

Description

Based on a partial Newton-Raphson approach offers this function two ways to compute the symmetrized M-estimator of scatter. The user can choose if all pairwise differences are choosen and stored in the memory or if the computation and storage of this large matrix is to be avoided.

Usage

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

Arguments

X

numeric data matrix or dataframe with more rows than columns. Missing values are not allowed.

nu

assumed degrees of freedom of the t-distribution, must be larger than 0. Default is '1'.

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 scatter matrix.

iter

Number of iterations of the algorithm.

Details

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., 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

MVTMLE

Examples

Run this code
# NOT RUN {
MVTMLEsymm(longley)
MVTMLEsymm(longley, nmax=10)
# }

Run the code above in your browser using DataLab