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:
|
estimate_mu |
Boolean indicating whether to estimate |
max_iter |
Integer indicating the maximum number of iterations for the iterative estimation
method (default is |
ptol |
Positive number indicating the relative tolerance for the change of the variables
to determine convergence of the iterative method (default is |
ftol |
Positive number indicating the relative tolerance for the change of the log-likelihood
value to determine convergence of the iterative method (default is |
return_iterates |
Logical value indicating whether to record the values of the parameters (and possibly the
log-likelihood if |
verbose |
Logical value indicating whether to allow the function to print messages (default is |
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 ( |
num_iterations |
Number of iterations executed. |
cpu_time |
Elapsed CPU time. |
log_likelihood |
Value of log-likelihood after converge of the estimation algorithm (if |
iterates_record |
Iterates of the parameters ( |
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)