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 and
be copulas with respective vectors of parameters
and
, then the convex combination of these copulas is
where . The generalization of this function for
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
compositing parameter;
cop1
— Function of the first copula
;
cop2
— Function of the second copula
;
para1
— Vector of parameters
for
; and
para2
— Vector of parameters
for
.
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)