coCOP: The Co-Copula Function

coCOPR Documentation

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, ...)

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.

Value

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

Note

The author (Asquith) finds the use of exceedance probabilities delicate in regards to Nelsen's notation. The coCOP function and surCOP have the exceedance argument to serve as a reminder that the co-copula as defined in the literature uses exceedance probabilities as its arguments, although the arguments as code u and v do not mimic the overline nomenclature (\,\overline{\cdots}\,) of the exceedance (survival) probabilities.

Author(s)

W.H. Asquith

References

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

See Also

COP, surCOP, duCOP

Examples

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

wasquith/copBasic documentation built on Dec. 13, 2024, 6:39 p.m.