composite2COP | R Documentation |
The composition of two copulas (Salvadori et al., 2007, p. 266, prop. C.3) provides for more sophisticated structures of dependence between variables than many single parameter copula can provide. Further, asymmetrical copulas are readily obtained from symmetrical copulas. Let \mathbf{A}
and \mathbf{B}
be copulas with respective parameters \Theta_\mathbf{A}
and \Theta_\mathbf{B}
, then
\mathbf{C}_{\alpha,\beta}(u,v) = \mathbf{A}(u^\alpha, v^\beta) \cdot
\mathbf{B}(u^{1-\alpha},v^{1-\beta})\mbox{,}
defines a family of copulas \mathbf{C}_{\alpha,\beta; \Theta_\mathbf{A}, \Theta_\mathbf{B}}
with two compositing parameters \alpha,\beta \in \mathcal{I}:[0,1]
. In particular if \alpha = \beta = 1
, then \mathbf{C}_{1,1} = \mathbf{A}
, and if \alpha = \beta = 0
, then \mathbf{C}_{0,0} = \mathbf{B}
. For \alpha \ne \beta
, the \mathbf{C}_{\alpha,\beta}
is in general asymmetric that is \mathbf{C}(u,v) \ne \mathbf{C}(v,u)
for some (u,v) \in \mathcal{I}^2
. This construction technique is named Khoudraji device within the copula package (see khoudrajiCopula
therein).
It is important to stress that copulas \mathbf{A}_{\Theta_A}
and \mathbf{B}_{\Theta_B}
can be of different families and each copula parameterized accordingly by the vector of parameters \Theta_A
and \Theta_B
. This is an interesting feature in the context of building complex structures when pursuing asymmetric measures of dependency such as the L-comoments. Do the copulas \mathbf{A}
and \mathbf{B}
need be symmetric? The Salvadori reference makes no stated restriction to that effect. Symmetry of the copula \mathbf{C}
is required for the situation that follows, however.
It is possible to simplify the construction of an asymmetric copula from a symmetric copula by the following. Let \mathbf{C}(u,v)
be a symmetric copula, \mathbf{C} \ne \mathbf{\Pi}
(for \mathbf{\Pi}
see P
). A family of asymmetric copulas \mathbf{C}_{\alpha,\beta}
with two composition parameters 0 < \alpha,\beta < 1, \mbox{and\ } \alpha \ne \beta
that also includes \mathbf{C}(u,v)
as a limiting case and is given by
\mathbf{C}_{\alpha,\beta}(u,v) = u^\alpha v^\beta \cdot \mathbf{C}(u^{1-\alpha},v^{1-\beta})\mbox{.}
The composite2COP
function is based on the more general result given in the former rather than the later mathematical definition to provide additional flexibility. For simpler case of composition involving only one copula, composite1COP
is available, and a more complex (extended) composition is available in composite3COP
.
composite2COP(u, v, para, ...)
u |
Nonexceedance probability |
v |
Nonexceedance probability |
para |
A special parameter |
... |
Additional arguments to pass to the copulas. |
Value(s) for the composited copula is returned.
The following descriptions list in detail the structure and content of the para
argument:
alpha
— The \alpha
compositing parameter;
beta
— The \beta
compositing parameter;
cop1
— Function of the first copula \mathbf{A}
;
cop2
— Function of the second copula \mathbf{B}
;
para1
— Vector of parameters \Theta_\mathbf{A}
for \mathbf{A}
; and
para2
— Vector of parameters \Theta_\mathbf{B}
for \mathbf{B}
.
The para
argument of this function also can be passed to composite1COP
; albeit, the second copula and its parameters would not be used. A more complex (extended) composition in composite3COP
extends this basic parameter structure.
W.H. Asquith
Salvadori, G., De Michele, C., Kottegoda, N.T., and Rosso, R., 2007, Extremes in Nature—An approach using copulas: Springer, 289 p.
COP
, breveCOP
, composite1COP
, composite3COP
,
convexCOP
, glueCOP
alpha <- 0.24; beta <- 0.23; Theta1 <- NA; Theta2 <- NA
# The W() and PSP() copulas do not take parameters, but example shows how the
# parameters would be set should either or both of the copulas require parameters.
para <- list(alpha=alpha, beta=beta, cop1=W, cop2=PSP, para1=Theta1, para2=Theta2)
print(composite2COP(0.4, 0.6, para)) # 0.2779868
# In this example, the N4212cop uses "3" as its parameter value.
para <- list(alpha=alpha, beta=beta, cop1=W, cop2=N4212cop, para1=Theta1, para2=3)
print(composite2COP(0.4, 0.6, para)) # 0.3387506
## Not run:
# This example does a great job of showing a composited copula with a near singularity,
# but with leakage of chance to the upper left. The example is also critical because
# it shows that gridCOP is returning a matrix in the proper orientation relative to
# the level.curvesCOP and simCOP functions. Example is cross-ref'ed from gridCOP() docs.
layout(matrix(1:2,byrow=TRUE))
para <- list(alpha=0.5, beta=0.90, cop1=M, cop2=N4212cop, para1=NA, para2=1.4)
image(gridCOP(cop=composite2COP, para=para, delta=0.01), col=terrain.colors(30),
xlab="U, NONEXCEEDANCE PROBABILITY", ylab="V, NONEXCEEDANCE PROBABILITY")
D <- simCOP(n=2000, cop=composite2COP, para=para, ploton=FALSE, pch=4, col=4, cex=0.75)
level.curvesCOP(cop=composite2COP, para=para, ploton=FALSE, delt=0.05)
mtext("Theoretical composited copula, level curves, and simulation")
emp <- EMPIRgrid(para=D, deluv=0.05) # CPU heavy
image(emp$empcop, col=terrain.colors(30) ) # image orientation is correct!
# Depending on balance between sample size, deluv, delu, and delt, one or more:
# Error in uniroot(func, interval = c(0, 1), u = u, LHS = t, cop = cop, :
# f() values at end points not of opposite sign
# warnings might be triggered. This is particularly true because of the flat derivative
# above the near singularity in this example composited copula.
points(D$U, D$V, pch=4, col=4, cex=0.75)
level.curvesCOP(cop=EMPIRcop, para=D, ploton=FALSE, delu=0.02, delt=0.05)
mtext("Empirical copula from n=2000 simulation") #
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.