fit_Tyler {fitHeavyTail}R Documentation

Estimate parameters of a multivariate elliptical distribution to fit data via Tyler's method

Description

Estimate parameters of a multivariate elliptical distribution, namely, the mean vector and the covariance matrix, to fit data. Any data sample with NAs will be simply dropped. The algorithm is based on Tyler's method, which normalizes the centered samples to get rid of the shape of the distribution tail. The data is first demeaned (with the geometric mean by default) and normalized. Then the estimation is based on the maximum likelihood estimation (MLE) and the algorithm is obtained from the majorization-minimization (MM) optimization framework. Since Tyler's method can only estimate the covariance matrix up to a scaling factor, a very effective method is employed to recover the scaling factor.

Usage

fit_Tyler(
  X,
  initial = NULL,
  estimate_mu = TRUE,
  max_iter = 200,
  ptol = 0.001,
  ftol = Inf,
  return_iterates = FALSE,
  verbose = FALSE
)

Arguments

X

Data matrix containing the multivariate time series (each column is one time series).

initial

List of initial values of the parameters for the iterative estimation method. Possible elements include:

  • mu: default is the data sample mean,

  • cov: default is the data sample covariance matrix.

estimate_mu

Boolean indicating whether to estimate mu (default is TRUE).

max_iter

Integer indicating the maximum number of iterations for the iterative estimation method (default is 100).

ptol

Positive number indicating the relative tolerance for the change of the variables to determine convergence of the iterative method (default is 1e-3).

ftol

Positive number indicating the relative tolerance for the change of the log-likelihood value to determine convergence of the iterative method (default is Inf, so it is not active). Note that using this argument might have a computational cost as a convergence criterion due to the computation of the log-likelihood (especially when X is high-dimensional).

return_iterates

Logical value indicating whether to record the values of the parameters (and possibly the log-likelihood if ftol < Inf) at each iteration (default is FALSE).

verbose

Logical value indicating whether to allow the function to print messages (default is FALSE).

Value

A list containing possibly the following elements:

mu

Mean vector estimate.

scatter

Scatter matrix estimate.

nu

Degrees of freedom estimate (assuming an underlying Student's t distribution).

cov

Covariance matrix estimate.

converged

Boolean denoting whether the algorithm has converged (TRUE) or the maximum number of iterations max_iter has reached (FALSE).

num_iterations

Number of iterations executed.

cpu_time

Elapsed CPU time.

log_likelihood

Value of log-likelihood after converge of the estimation algorithm (if ftol < Inf).

iterates_record

Iterates of the parameters (mu, scatter, and possibly log_likelihood (if ftol < Inf)) along the iterations (if return_iterates = TRUE).

Author(s)

Daniel P. Palomar

References

Ying Sun, Prabhu Babu, and Daniel P. Palomar, "Regularized Tyler's Scatter Estimator: Existence, Uniqueness, and Algorithms," IEEE Trans. on Signal Processing, vol. 62, no. 19, pp. 5143-5156, Oct. 2014.

See Also

fit_Cauchy and fit_mvt

Examples

library(mvtnorm)       # to generate heavy-tailed data
library(fitHeavyTail)

X <- rmvt(n = 1000, df = 6)  # generate Student's t data
fit_Tyler(X)


[Package fitHeavyTail version 0.2.0 Index]