Learn R Programming

copBasic (version 2.0.1)

duCOP: The Dual of a Copula Function

Description

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

$$\mathrm{Pr}[U \le v \mathrm{\ or\ } V \le v] = \tilde{\mathbf{C}}(u,v) = u + v - \mathbf{C}(u,v)\mbox{,}$$

where $\tilde{\mathbf{C}}(u,v)$ is the dual of a copula and $u$ and $v$ are nonexceedance probabilities. The dual of a copula is the expression for the probability that either $U \le u$ or $V \le v$, which is unlike the co-copula (function) (see coCOP) that provides $\mathrm{Pr}[U > u \mathrm{\ or\ } V > v]$. The dual of a copula is a function and not in itself a copula. The dual of the survivial copula (surCOP) is the co-copula (function) (coCOP). Some rules of copulas mean that

$$\hat\mathbf{C}(u',v') + \tilde{\mathbf{C}}(u,v) \equiv 1\mbox{,}$$

where $\hat\mathbf{C}(u',v')$ is the survival copula in terms of exceedance probabilities $u'$ and $v'$ or in copBasic code that the functions surCOP + duCOP equal unity.

The function duCOP gives protection against simultaneous (concurrent or dual) risk by failure if and only if failure is caused (defined) by both hazard sources $U$ and $V$ occurring at the same time. Expressing this in terms of an annual probability of occurrence ($q$), one has $$q = 1 - \mathrm{Pr}[U \le v \mathrm{\ or\ } V \le v] = 1 - \tilde{\mathbf{C}}(u,v)\mbox{\ or}$$ in Rcode q <- 1 - duCOP(u,v). So as a mnemonic: A dual of a copula is the probabililty of nonexceedance if the hazard sources must dual (concur, link, pair, twin) to cause failure.

Usage

duCOP(u, v, cop=NULL, para=NULL, ...)

Arguments

u
Nonexceedance probability $u$ in the $X$ direction;
v
Nonexceedance probability $v$ in the $Y$ direction;
cop
A copula function;
para
Vector of parameters or other data structure, if needed, to pass to the copula; and
...
Additional arguments to pass (such as parameters, if needed, for the copula in the form of a list.

Value

  • Value(s) for the dual of a copula are returned.

References

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

See Also

COP, coCOP, surCOP, jointCOP, joint.curvesCOP

Examples

Run this code
u <- runif(1); t <- runif(1)
duCOP(cop=W,u,t)    # joint or probability for perfect negative dependence
duCOP(cop=P,u,t)    # joint or probability for perfect        independence
duCOP(cop=M,u,t)    # joint or probability for perfect positive dependence
duCOP(cop=PSP,u,t)  # joint or probability for some positive    dependence

# Next demonstrate COP + duCOP = 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)
surCOP(1-u,1-v, cop=MOcop, para=ab) + duCOP(u,v, cop=MOcop, para=ab) # UNITY

# See extended code listings and discussion in the Note section}
<keyword>copula operator</keyword>
<keyword>joint probability</keyword>
<keyword>joint probability (exclusive or)</keyword>
<concept>exclusive or</concept>
<concept>mutually exclusive or</concept>
<concept>mutually exclusive or condition</concept>

Run the code above in your browser using DataLab