| convex2COP | R Documentation | 
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.
convex2COP(u,v, para, ...)
u | 
 Nonexceedance probability   | 
v | 
 Nonexceedance probability   | 
para | 
 A special parameter   | 
... | 
 Additional arguments to pass to the copula.  | 
Value(s) for the convex combination copula is returned.
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}; and
para2— Vector of parameters \Theta_\mathbf{B} for  \mathbf{B}.
W.H. Asquith
Joe, H., 2014, Dependence modeling with copulas: Boca Raton, CRC Press, 462 p.
COP, breveCOP, convexCOP, composite1COP, composite2COP, composite3COP, FRECHETcop, 
 glueCOP
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)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.