convex2COP {copBasic} | R Documentation |
Convex Combination of Two Copulas
Description
The convex composition of two copulas (Joe, 2014, p. 155) provides for some simple complexity extension between copula families. Let \mathbf{A}
and \mathbf{B}
be copulas with respective vectors of parameters \Theta_\mathbf{A}
and \Theta_\mathbf{B}
, then the convex combination of these copulas is
\mathbf{C}^{\times}_{\alpha}(u,v) = \alpha\cdot\mathbf{A}(u, v; \Theta_\mathbf{A}) - (1-\alpha)\cdot\mathbf{B}(u,v; \Theta_\mathbf{B})\mbox{,}
where 0 \le \alpha \le 1
. The generalization of this function for N
number of copulas is provided by convexCOP
.
Usage
convex2COP(u,v, para, ...)
Arguments
u |
Nonexceedance probability |
v |
Nonexceedance probability |
para |
A special parameter |
... |
Additional arguments to pass to the copula. |
Value
Value(s) for the convex combination copula is returned.
Note
The following descriptions list in detail the structure and content of the para
argument:
alpha
— The
\alpha
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}
; andpara2
— Vector of parameters
\Theta_\mathbf{B}
for\mathbf{B}
.
Author(s)
W.H. Asquith
References
Joe, H., 2014, Dependence modeling with copulas: Boca Raton, CRC Press, 462 p.
See Also
COP
, breveCOP
, convexCOP
, composite1COP
, composite2COP
, composite3COP
, FRECHETcop
,
glueCOP
Examples
para <- list(alpha=0.24, cop1=FRECHETcop, para1=c(0.4, 0.56),
cop2=PSP, para2=NA)
convex2COP(0.87,0.35, para=para) # 0.3188711
## Not run:
# Suppose we have a target Kendall Tau of 1/3 and a Gumbel-Hougaard copula seems
# attractive but the GH has just too much upper tail dependency for comfort. We
# think from data analysis that an upper tail dependency that is weaker and near
# 2/10 is the better. Let us convex mix in a Plackett copula and optimize.
TargetTau <- tauCOP(cop=GHcop, para=1.5) # 1/3 (Kendall Tau)
taildepCOP( cop=GHcop, para=1.5, plot = TRUE)$lambdaU # 0.4126
TargetUpperTailDep <- 2/10
# **Serious CPU time pending for this example**
par <- c(-.10, 4.65) # Initial guess but the first parameter is in standard
# normal for optim() to keep us in the [0,1] domain when converted to probability.
# The guesses of -0.10 (standard deviation) for the convex parameter and 4.65 for
# the Plackett are based on a much longer search times as setup for this problem.
# The simplex for optim() is going to be close to the solution on startup.
"afunc" <- function(par) {
para <- list(alpha=pnorm(par[1]), cop1=GHcop, para1=1.5,
cop2=PLACKETTcop, para2=par[2])
tau <- tauCOP(cop=convex2COP, para=para)
taildep <- taildepCOP(cop=convex2COP, para=para, plot = FALSE)$lambdaU
err <- sqrt((TargetTau - tau)^2 + (TargetUpperTailDep - taildep)^2)
print(c(pnorm(par[1]), par[2], tau, taildep, err))
return(err)
}
mysolution <- optim(par, afunc, control=list(abstol=1E-4))
para <- list(alpha=.4846902, cop1=GHcop, para1=1.5,
cop2=PLACKETTcop, para2=4.711464)
UV <- simCOP(n=2500, cop=convex2COP, para=para, snv=TRUE) #
## End(Not run)