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