isCOP.radsym: Is a Copula Radially Symmetric

isCOP.radsymR Documentation

Is a Copula Radially Symmetric

Description

Numerically set a logical whether a copula is radially symmetric (Nelsen, 2006, p. 37) [reflection symmetric, Joe (2014, p. 64)]. A copula \mathbf{C}(u,v) is radially symmetric if and only if for any \{u,v\} \in [0,1] either of the following hold

\mathbf{C}(u,v) = u + v - 1 + \mathbf{C}(1-u, 1-v)

or

u + v - 1 + \mathbf{C}(1-u, 1-v) - \mathbf{C}(u,v) \equiv 0\mbox{.}

Thus, if the equality of the copula \mathbf{C}(u,v) = \hat{\mathbf{C}}(u,v) (the survival copula), then radial symmetry exists: COP = surCOP or \mathbf{C}(u,v) = \hat{\mathbf{C}}(1-u,1-v). The computation is (can be) CPU intensive.

Usage

isCOP.radsym(cop=NULL, para=NULL, delta=0.005, tol=1e-4, ...)

Arguments

cop

A copula function;

para

Vector of parameters, if needed, to pass to the copula;

delta

The increments of \{u,v\} \mapsto [0+\Delta\delta, 1-\Delta\delta, \Delta\delta];

tol

A tolerance on the check for symmetry, default 1 part in 10,000, which is the test for the \equiv 0 (zero equivalence, see source code); and

...

Additional arguments to pass to the copula or derivative of a copula function.

Value

A logical TRUE or FALSE is returned.

Note

An open research question possibly exists: Is a radially symmetric copula characterized by the L-comoments for orders r{\ge}3 as having values of zero? The author asks this question partly out of intuition stemming from numerical experiments (some not show here) suggesting this condition, and review of copula literature does not seem to directly address this question. Let us consider the two symmetrical copulas: the parameterless \mathbf{PSP}(u,v) (see PSP) and the single parameter \mathbf{PL}(u,v; \Theta) (see PLACKETTcop) with the \Theta_\mathbf{PL} = 4.708664 (see rhoCOP). The two copulas have different radial symmetries as shown below.

  plackpar <- PLACKETTpar(rho=rhoCOP(cop=PSP)) # Spearman Rho = 0.4784176
  isCOP.radsym(cop=PSP)                        # FALSE
  isCOP.radsym(cop=PLACKETTcop, para=plackpar) # TRUE

Now, let us compute the L-comoments from the lmomco R package for n=10{,}000 simulations from each copula. The L-correlations are each about 0.48, which agree with the given \rho_\mathbf{C}.

  set.seed(639)
  UVa <- simCOP(n=10000, cop=PSP,         para=NA,       graphics=FALSE)
  set.seed(639)
  UVb <- simCOP(n=10000, cop=PLACKETTcop, para=plackpar, graphics=FALSE)
  lmomco::lcomoms2(UVa, nmom=4)$T3[2,1] # Only show L-coskew of V wrt U.
  lmomco::lcomoms2(UVb, nmom=4)$T3[2,1] # Only show L-coskew of V wrt U.

The L-coskew for the \mathbf{PSP} is about -0.129 and that for the \mathbf{PL} copula is about zero (<0.0029). L-cokurtosis provides a similar result if T3 is changed to T4. The \mathbf{PSP} L-cokurtosis is about 0.041, whereas the \mathbf{PL} L-cokurtosis is about <0.0037.

Author(s)

W.H. Asquith

References

Nelsen, R.B., 2006, An introduction to copulas: New York, Springer, 269 p.

Salvadori, G., De Michele, C., Kottegoda, N.T., and Rosso, R., 2007, Extremes in Nature—An approach using copulas: Springer, 289 p.

See Also

isCOP.permsym

Examples

# Radially symmetry is computationally intensive and relies on a gridded [0,1]x[0,1]
# space and laborious check on equality. Thus these examples are commented out for
# R --timings check. Note, the proof of radial symmetry absent of algebraic
# manipulation or verification is difficult and subject to the fineness of the grid
# to find a nonequality from which to immediately conclude FALSE.
## Not run: 
isCOP.radsym(cop=P) # TRUE

para <- list(cop1=PLACKETTcop, cop2=M, para1=c(.3), para2=NA, alpha=0.8, beta=0.5)
isCOP.radsym(composite2COP, para=para) # FALSE

## End(Not run)
## Not run: 
gh <- simCOP(n=34, cop=GHcop, para=theta, ploton=FALSE, points=FALSE) * 150
# Pretend gh is real data, the * 150 is to clearly get into an arbitrary unit system.

# The sort=FALSE is critical in the following two calls
fakeU <- lmomco::pp(gh[,1], sort=FALSE) # Weibull plotting position i/(n+1)
fakeV <- lmomco::pp(gh[,2], sort=FALSE) # Weibull plotting position i/(n+1)
uv <- data.frame(U=fakeU, V=fakeV); # our U-statistics

set.seed(120); theta <- 2
gh <- simCOP(n=34, cop=GHcop, para=theta, ploton=FALSE, points=FALSE) * 150
# Pretend psp is real data, the * 150 is to clearly get into an arbitrary unit system.

# The sort=FALSE is critical in the following two calls
fakeU <- lmomco::pp(gh[,1], sort=FALSE) # Weibull plotting position i/(n+1)
fakeV <- lmomco::pp(gh[,2], sort=FALSE) # Weibull plotting position i/(n+1)
uv <- data.frame(U=fakeU, V=fakeV); # our U-statistics

isCOP.radsym(cop=EMPIRcop, para=uv) # FALSE
isCOP.LTD(cop=EMPIRcop,    para=uv) # TRUE
isCOP.RTI(cop=EMPIRcop,    para=uv) # FALSE
isCOP.PQD(cop=EMPIRcop,    para=uv,
                    empirical=TRUE) # TRUE
  # Blomqvist's Beta = 0.2941
  #     Gini's Gamma = 0.5606
  #   Spearman's Rho = 0.6584
  #    Kendall's Tau = 0.5045

isCOP.radsym(cop=GHcop, para=theta) # FALSE
isCOP.LTD(cop=GHcop,    para=theta) # TRUE
isCOP.RTI(cop=GHcop,    para=theta) # TRUE
isCOP.PQD(cop=GHcop,    para=theta) # TRUE
  # Blomqvist's Beta = 0.5009
  #     Gini's Gamma = 0.5591
  #   Spearman's Rho = 0.6822
  #    Kendall's Tau = 0.5000

# Notice that isCOP.RTI is not the same for empirical and theoretical.
# This shows the difficulty in tail dependence parameter estimation for
# small samples (see Salvadori et al., 2007 p. 175).
## End(Not run)

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