Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Mean and Covariance Matrix Estimation under Heavy Tails

License

NotificationsYou must be signed in to change notification settings

convexfi/fitHeavyTail

Repository files navigation

CRAN_Status_BadgeCRAN DownloadsCRAN Downloads Total

Robust estimation methods for the mean vector, scatter matrix,and covariance matrix (if it exists) from data (possibly containing NAs)under multivariate heavy-tailed distributions such as angular Gaussian(via Tyler's method), Cauchy, and Student's t distributions. Additionally,a factor model structure can be specified for the covariance matrix. Thelatest revision also includes the multivariate skewed t distribution.

Installation

The package can be installed fromCRAN orGitHub:

# install stable version from CRANinstall.packages("fitHeavyTail")# install development version from GitHubdevtools::install_github("convexfi/fitHeavyTail")

To get help:

library(fitHeavyTail)help(package="fitHeavyTail")?fit_mvt

To citefitHeavyTail in publications:

citation("fitHeavyTail")

Quick Start

To illustrate the simple usage of the packagefitHeavyTail, let's start by generating some multivariate data under a Student's$t$ distribution with significant heavy tails (degrees of freedom$\nu=4$):

library(mvtnorm)# package for multivariate t distributionN<-10# number of variablesT<-80# number of observationsnu<-4# degrees of freedom for heavy tailsset.seed(42)mu<- rep(0,N)U<- t(rmvnorm(n= round(0.3*N),sigma=0.1*diag(N)))Sigma_cov<-U%*% t(U)+ diag(N)# covariance matrix with factor model structureSigma_scatter<- (nu-2)/nu*Sigma_covX<- rmvt(n=T,delta=mu,sigma=Sigma_scatter,df=nu)# generate data

We can first estimate the mean vector and covariance matrix via the traditional sample estimates (i.e., sample mean and sample covariance matrix):

mu_sm<- colMeans(X)Sigma_scm<- cov(X)

Then we can compute the robust estimates via the packagefitHeavyTail:

library(fitHeavyTail)fitted<- fit_mvt(X)

We can now compute the estimation errors and see the significant improvement:

sum((mu_sm-mu)^2)#> [1] 0.2857323sum((fitted$mu-mu)^2)#> [1] 0.1487845sum((Sigma_scm-Sigma_cov)^2)#> [1] 5.861138sum((fitted$cov-Sigma_cov)^2)#> [1] 4.663539

To get a visual idea of the robustness, we can plot the shapes of the covariance matrices (true and estimated ones) on two dimensions. Observe how the heavy-tailed estimation follows the true one more closely than the sample covariance matrix:

Documentation

For more detailed information, please check thevignette.

Links

Package:CRAN andGitHub.

README file:GitHub-readme.

Vignette:CRAN-vignette andGitHub-vignette.


[8]ページ先頭

©2009-2025 Movatter.jp