Learn R Programming

copBasic (version 2.2.6)

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 and 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 syntax that the functions COP(u,v) + coCOP(u,v) equal unity if the exceedance argument to coCOP is set to FALSE.

The function coCOP gives “risk” against failure if failure is defined as either hazard source \(U\) or \(V\) occuring by themselves or if both occurred at the same time. Expressing this in terms of an annual probability of occurrence (\(q\)), one has $$q = 1 - \mathrm{Pr}[U > u \mathrm{\ or\ } V > v] = \mathbf{C}^{\star}(u',v') \mbox{\ or}$$ in R code q <- coCOP(u,v, exceedance=FALSE, ...). So, in yet other words and as a mnemonic: A co-copula is the probabililty of exceedance if the hazard sources collaborate or cooperate to cause failure. Also, \(q\) can be computed by q <- coCOP(1 - u, 1 - v, exceedance=TRUE, ...).

Usage

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

Value

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

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 values given 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.

Author

W.H. Asquith

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, ...) { # Marshall-Olkin copula
   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