tailordCOP {copBasic} | R 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 thed
-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)
; seePLACKETTcop
); 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 thetailordCOP
provides consistency onW
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 |
kappaU |
The rounded value of |
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 tol
erance, 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
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)