tailordCOP: The Lower- and Upper-Tail Orders of a Copula

tailordCOPR Documentation

The Lower- and Upper-Tail Orders of a Copula

Description

Compute the lower- and upper-tail orders (if they exist), respectively, of a copula \mathbf{C}(u,v) according to Joe (2014, pp. 67–70). The tail order is a concept for the strength of dependence in the joint tails of a multivariate distribution. The opposing tails can be compared to assess tail order or reflection symmetry (term by Joe (2014) for Nelsen's (2006, p. 36) term radial symmetry). Joe (2014) provides extensively analytical details but sufficient for the copBasic package, the tail orders can be numerically explored.

The lower-tail order maybe numerically approximated by

\kappa^L_\mathbf{C} = \frac{\log[\mathbf{C}(t,t)]}{\log(t)}\mbox{,}

for some small positive values of t, and similarly the upper-tail order maybe numerically approximated by

\kappa^U_\mathbf{C} = \frac{\log[\hat{\mathbf{C}}(t,t)]}{\log(t)}\mbox{,}

where \hat{\mathbf{C}}(u,v) is the survival copula (surCOP). Joe (2014) has potentially(?) conflicting notation in the context of the upper-tail order; the term “reflection” is used (p. 67) and “lower tail order of the reflected copula is the same as the upper tail order of the original copula” (p. 69), but Joe (2014, p. 67) only uses the joint survival function (surfuncCOP) in the definition of \kappa^U_\mathbf{C}.

As a note, the author of this package was not able to get tailordCOP to function properly for the upper-tail order using the joint survival function as implied on the bottom of Joe (2014, p. 67) and fortunately the fact that “reflection” is used in other contexts and used in analytical examples, the tailordCOP function uses the lower-tail order of the reflection (survival copula). Joe (2014) also defines tail order parameter \Psi but that seems to be a result of analytics and not implemented in this package. Lastly, the tail orders are extendable into d dimensions, but only a bivariate (d = 2) is provided in copBasic. The tail orders have various classifications for \kappa = \kappa_L = \kappa_U:

\bullet

Intermediate tail dependence for 1 < \kappa < d or \kappa = 1, \Psi = 0;

\bullet

Strong tail dependence for \kappa = 1 with \Psi > 0; and

\bullet

Tail orthant independence or tail quadrant independence for \kappa = d.

Joe (2014) provides additional properties:

\bullet

\kappa_L = \kappa_U = d for the d-dimensional independence copula (P; e.g. tailordCOP(cop=P));

\bullet

It is not possible for \kappa_L < 1 or \kappa_U < 1 but each can be > 1 for a \mathbf{C}(u,v) having some negative dependence (e.g. tailordCOP(cop=PLACKETTcop, para=0.2); see PLACKETTcop); and

\bullet

For the bivariate Fréchet–Hoeffding lower-bound copula (W; countermonotonicity copula) the \kappa_L = \kappa_U and can be considered +\infty. (A special trap in the tailordCOP provides consistency on W but does not test that the copula is actually that function itself.)

Usage

tailordCOP(cop=NULL, para=NULL, tol=1e-6, plot=FALSE, verbose=FALSE, ...)

Arguments

cop

A copula function;

para

Vector of parameters or other data structure, if needed, to pass to the copula;

tol

A tolerance on convergence;

plot

A logical plotting a diagnostic plot of the diagonal derivatives and label the limits;

verbose

Show incremental progress; and

...

Additional arguments to pass to the copula function.

Value

An R list is returned.

kappaL

The rounded value of \kappa^L_\mathbf{C};

kappaU

The rounded value of \kappa^U_\mathbf{C};

source

An attribute identifying the computational source: “tailordCOP”.

Note

The algorithm implemented for tailordCOP is based on halves (or alternatives by the setting of the divisor argument) and uses the copula function (not an analytical or even numerical derivative of the diagonal, \delta_\mathbf{C}'(t)). Starting from the median or t = 0.5, each limit is respectively computed by successive halving of the distance towards 0^{+} and checking the change in computed value against the tolerance tol argument. After the change becomes less than the the tolerance, convergence is assumed. Other tests are made for NaN to aid in breaking the successive halvings. The rounding for the numerical results for \kappa^U_\mathbf{C} and \kappa^L_\mathbf{C} is an order of magnitude larger than the tolerance.

Users are encouraged to plot the results and further verify whether the convergence makes sense. The plot produced when plot=TRUE shows the probability t transformed into standard normal variates by the qnorm() function in R so that the distal reaches of each tail and thus limit are readily seen. The terminal points of each limit computation are shown by a small dot, and the letter “L” and “U” also are plotted at the terminal points.

Author(s)

W.H. Asquith

References

Joe, H., 2014, Dependence modeling with copulas: Boca Raton, CRC Press, 462 p.

See Also

COP, tailconCOP, taildepCOP

Examples

## Not run: 
# Joe (2014, p. 5) names MTCJ = Mardia-Takahasi-Cook-Johnson copula
"MTCJ" <- function(u,v, para) { (u^(-para) + v^(-para) - 1)^(-1/para) }
# The results that follow match those reported by Joe (2014, p. 69) who
# analytically derives KappaL = 1 and KappaU = 2.
# TAIL ORDER:
tailordCOP(cop=MTCJ, para=3, plot=TRUE) # kappaL  = 1.00667, kappaU  = 1.96296
# TAIL DEPENDENCY:
taildepCOP(cop=MTCJ, para=3, plot=TRUE) # lambdaL = 0,       lambdaU = 0.7937
# Joe (2014) reports lambdaL = 2^(-1/para) = 2^(-1/3) = 0.7937005
## End(Not run)

wasquith/copBasic documentation built on March 10, 2024, 11:24 a.m.