Learn R Programming

copBasic (version 1.7.1)

coCOP: The Co-Copula Function

Description

Compute the co-copula (function) from a copula (Nelsen, 2006, pp. 33--34), which is defined as

$$\mathrm{Pr}[U > u \mathrm{\ or\ } V > v] = \mathbf{C}^{\star}(u',v') = 1 - \mathbf{C}(u',v')\mbox{,}$$

where $\mathbf{C}^{\star}(u',v')$ is the co-copula and $u'$ and $v'$ are exceedance probabilities, which are equivalent to $1-u$ and $1-v$ respectively. The co-copula is the expression for the probability that either $U > u$ or $V > v$ when the arguments to $\mathbf{C}^{\star}(u',v')$ are exceedance probabilities, which is unlike the dual of a copula function (see duCOP) that provides $\mathrm{Pr}[U \le u \mathrm{\ or\ } V \le v]$.

The co-copula is a function and not in itself a copula. Some rules of copulas mean that $\mathbf{C}(u,v) + \mathbf{C}^{\star}(u',v') \equiv 1$ or in copBasic code that the functions COP + coCOP equal unity.

Usage

coCOP(u, v, cop=NULL, para=NULL, exceedance=TRUE, ...)

Arguments

u
Exceedance probability ($u' = 1-u$) in the $X$ direction;
v
Exceedance probability ($v' = 1-v$) in the $Y$ direction;
cop
A copula function;
para
Vector of parameters or other data structure, if needed, to pass to the copula;
exceedance
A logical controlling the probability direction. Are u and v really $u'$ and $v'$, respectively? If FALSE, then the complements of the two are made internally and the nonexceedances can thus be passed; and
...
Additional arguments to pass to the copula.

Value

  • The value(s) for the co-copula are returned.

References

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

See Also

COP, surCOP, duCOP

Examples

Run this code
u <- 1 - runif(1); v <- 1 - runif(1) # as exceedance, in order to reinforce the
# change to exceedance instead of nonexceedance that otherwise dominates this package
message("Exceedance probabilities u' and v' are ", u, "and ", v)
coCOP(u,v,cop=PLACKETTcop, para=10) # Positive association Plackett

# computation using  manual  manipulation to nonexceedance probability
1 - COP(cop=PSP,(1-u),(1-v))
# computation using internal manipulation to nonexceedance probability
  coCOP(cop=PSP,u,v)

# Next demonstrate COP + coCOP = unity.
"MOcop.formula" <- function(u,v, para=para, ...) {
   alpha <- para[1]; beta <- para[2]; return(min(v*u^(1-alpha), u*v^(1-beta)))
}
"MOcop" <- function(u,v, ...) { asCOP(u,v, f=MOcop.formula, ...) }
u <- 0.2; v <- 0.75; ab <- c(1.5, 0.3)
COP(u,v, cop=MOcop, para=ab) + coCOP(1-u,1-v, cop=MOcop, para=ab) # UNITY

Run the code above in your browser using DataLab