coCOP {copBasic} | R 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 ( |
v |
Exceedance probability ( |
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 |
... |
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
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