| fitLambda {copula} | R 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 |
|
method |
the method with which the tail-dependence coefficients are computed:
|
p |
(small) cut-off parameter in |
lower.tail |
|
verbose |
a |
... |
additional arguments passed to the underlying functions
(at the moment only to |
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