glueCOP {copBasic}R Documentation

Gluing Two Copulas

Description

The gluing copula technique (Erdely, 2017, p. 71), given two bivariate copulas CA\mathbf{C}_A and CB\mathbf{C}_B and a fixed value 0γ10 \le \gamma \le 1 is

Cγ(u,v)=γCA(u/γ,v)\mathbf{C}_{\gamma}(u,v) = \gamma\cdot\mathbf{C}_A(u/\gamma, v)

for 0uγ0 \le u \le \gamma and

Cγ(u,v)=(1γ)CB((uγ)/(1γ),v)\mathbf{C}_{\gamma}(u,v) = (1-\gamma)\cdot\mathbf{C}_B((u-\gamma) \,/\,(1-\gamma), v)

for γu1\gamma \le u \le 1 and γ\gamma represents the gluing point in uu (horizontal axis). The logic is simply the rescaling of CA\mathbf{C}_A to [0,γ]×[0,1][0,\gamma] \times [0,1] and CB\mathbf{C}_B to [γ,1]×[0,1][\gamma,1] \times [0,1]. Copula gluing is potentially useful in circumstances for which regression is non-monotone.

Usage

glueCOP(u, v, para=NULL, ...)

Arguments

u

Nonexceedance probability uu in the XX direction;

v

Nonexceedance probability vv in the YY direction;

para

A special parameter list (see Note) with a mandatory element of glue parameter γ\gamma; and

...

Additional arguments to pass to the copulas.

Value

Value(s) for the copula are returned.

Note

The following descriptions list in detail the structure and content of the para argument:

glue

— The γ\gamma gluing parameter;

cop1

— Function of the first copula A\mathbf{A};

cop2

— Function of the second copula B\mathbf{B};

para1

— Vector of parameters ΘA\Theta_\mathbf{A} for A\mathbf{A}; and

para2

— Vector of parameters ΘB\Theta_\mathbf{B} for B\mathbf{B}.

Author(s)

W.H. Asquith

References

Erdely, A., 2017, Copula-based piecewise regression (chap. 5) in Copulas and dependence models with applications—Contributions in honor of Roger B. Nelsen, eds. Flores, U.M., Amo Artero, E., Durante, F., Sánchez, J.F.: Springer, Cham, Switzerland, ISBN 978–3–319–64220–9, doi:10.1007/978-3-319-64221-5.

See Also

COP, breveCOP, composite1COP, composite2COP, composite3COP, convexCOP

Examples

## Not run: 
para <- list(cop1=PLACKETTcop, para1=.2, cop2=GLcop, para2=1.2, glue=0.6)
densityCOPplot(cop=glueCOP, para=para) # 
## End(Not run)

## Not run: 
# Concerning Nelsen (2006, exam. 3.3, pp. 59-61)
# Concerning Erdely (2017, exam. 5.1, p. 71)
# Concerning Erdely (2017, exam. 5.2, p. 75)
# Nelsen's example is a triangle with vertex at [G, 1].
# Erdley's example permits the construction using glueCOP from M and W.
"coptri" <- function(u,v, para=NA, ...) {
   p <- para[1]; r <- 1 - (1-p)*v
   if(length(u) > 1 | length(v) > 1) stop("only scalars for this function")
   if(0 <= u & u <= p*v & p*v <= p) {            return(u)
   } else if(  0 <= p*v & p*v <  u & u <  r) {   return(p*v)
   } else if(  p <= r   & r   <= u & u <= 1 ) {  return(u+v-1)
   } else { stop("should not be here in logic") }
}
"UsersCop" <- function(u,v, ...) { asCOP(u,v, f=coptri, ...) }
# Demonstrate Nelsen's triangular copula    (black dots )
UV <- simCOP(cop=UsersCop, para=0.35, cex=0.5, pch=16)
# Add Erdley's gluing of M() and W() copula (red circles)
para <- list(cop1=M, cop2=W, para1=NA, para2=NA, glue=0.35)
UV <- simCOP(cop=glueCOP,  para=para, col=2,   ploton=FALSE)
# We see in the plot that the triangular copulas are the same.

# For G = 0.5, Erdley shows Spearman Rho = 2*G-1 = 0, but
#  Schweizer-Wolff = G^2 + (G-1)^2 = 0.5, let us check these:
para <- list(cop1=M, cop2=W, para1=NA, para2=NA, glue=0.5)
rhoCOP( cop=glueCOP, para=para) # -2.181726e-17
wolfCOP(cop=glueCOP, para=para) #  0.4999953
# So, rhoCOP() indicates independence, but wolfCOP() indicates
# dependence at the minimum value possible for a triangular copula. 
## End(Not run)

[Package copBasic version 2.2.4 Index]