fitLambda: Non-parametric Estimators of the Matrix of Tail-Dependence...

View source: R/fitLambda.R

fitLambdaR Documentation

Non-parametric Estimators of the Matrix of Tail-Dependence Coefficients

Description

Computing non-parametric estimators of the (matrix of) tail-dependence coefficients.

Usage

fitLambda(u, method = c("Schmid.Schmidt", "Schmidt.Stadtmueller", "t"),
          p = 1/sqrt(nrow(u)), lower.tail = TRUE, verbose = FALSE, ...)

Arguments

u

n x d-matrix of (pseudo-)observations in [0,1]^d for estimating the (matrix of) tail-dependence coefficients.

method

the method with which the tail-dependence coefficients are computed:

method = "Schmid.Schmidt":

nonparametric estimator of Schmid and Schmidt (2007) (see also Jaworksi et al. (2009, p. 231)) computed for all pairs (pairwise conditional Spearman's rho for u <= p).

method = "Schmidt.Stadtmueller":

nonparametric estimator of Schmidt and Stadtmueller (2006) computed for all pairs (pairwise empirical tail copula for u <= p).

method = "t":

fits pairwise t copulas and returns the implied tail-dependence coefficient.

p

(small) cut-off parameter in [0,1] below (for tail = "lower") or above (for tail = "upper") which the estimation takes place.

lower.tail

logical indicating whether the lower (the default) or upper tail-dependence coefficient is computed; in case of the latter, the lower tail dependence coefficient of the flipped data 1-u is computed.

verbose

a logical indicating whether a progress bar is displayed.

...

additional arguments passed to the underlying functions (at the moment only to optimize() in case method = "t").

Details

As seen in the examples, be careful using nonparametric estimators, they might not perform too well (depending on p and in general). After all, the notion of tail dependence is a limit, finite sample sizes may not be able to capture limits well.

Value

The matrix of pairwise coefficients of tail dependence; for method = "t" a list with components Lambda, the matrix of pairwise estimated correlation coefficients P and the matrix of pairwise estimated degrees of freedom Nu.

References

Jaworski, P., Durante, F., Härdle, W. K., Rychlik, T. (2010). Copula Theory and Its Applications Springer, Lecture Notes in Statistics – Proceedings.

Schmid, F., Schmidt, R. (2007). Multivariate conditional versions of Spearman's rho and related measures of tail dependence. Journal of Multivariate Analysis 98, 1123–1140. doi: 10.1016/j.jmva.2006.05.005

Schmidt, R., Stadtmueller, U. (2006). Non-parametric Estimation of Tail Dependence. Scandinavian Journal of Statistics 33(2), 307–335. doi: 10.1111/j.1467-9469.2005.00483.x

See Also

lambda() computes the true (lower and upper) tail coefficients for a given copula.

Examples

n <- 10000 # sample size
p <- 0.01 # cut-off

## Bivariate case
d <- 2
cop <- claytonCopula(2, dim = d)
set.seed(271)
U <- rCopula(n, copula = cop) # generate observations (unrealistic)
(lam.true <- lambda(cop)) # true tail-dependence coefficients lambda
(lam.C <- c(lower = fitLambda(U, p = p)[2,1],
            upper = fitLambda(U, p = p, lower.tail = FALSE)[2,1])) # estimate lambdas
## => pretty good
U. <- pobs(U) # pseudo-observations (realistic)
(lam.C. <- c(lower = fitLambda(U., p = p)[2,1],
             upper = fitLambda(U., p = p, lower.tail = FALSE)[2,1])) # estimate lambdas
## => The pseudo-observations do have an effect...

## Higher-dimensional case
d <- 5
cop <- claytonCopula(2, dim = d)
set.seed(271)
U <- rCopula(n, copula = cop) # generate observations (unrealistic)
(lam.true <- lambda(cop)) # true tail-dependence coefficients lambda
(Lam.C <- list(lower = fitLambda(U, p = p),
               upper = fitLambda(U, p = p, lower.tail = FALSE))) # estimate Lambdas
## => Not too good
U. <- pobs(U) # pseudo-observations (realistic)
(Lam.C. <- list(lower = fitLambda(U., p = p),
                upper = fitLambda(U., p = p, lower.tail = FALSE))) # estimate Lambdas
## => Performance not too great here in either case

copula documentation built on June 15, 2022, 5:07 p.m.