prod2COP: The Product of Two Copulas

prod2COPR Documentation

The Product of Two Copulas

Description

Perform copula multiplication (so-called “\ast-product” or Markov Product) is a continuous analog of matrix multiplication and yields another copula:

\bigl(\mathbf{C}_1 \ast \mathbf{C}_2 \bigr)(u,v) = \mathbf{C}_3(u,v) = \int_\mathcal{I} \frac{\delta \mathbf{C}_1(u, t)}{\delta v} \frac{\delta \mathbf{C}_2(t, v)}{\delta u}\,\mathrm{d}t\mbox{,}

for copulas \mathbf{C}_1(u, v) and \mathbf{C}_2(u, v) are copulas whose \ast-product yields copula \mathbf{C}_3(u, v) in terms of partial derivatives (derCOP and derCOP2) of the other two. Nelsen (2006, p. 245) lists several identities of the \ast-product involving the product (\mathbf{\Pi}; P), lower bound (\mathbf{W}; W), and upper bound (\mathbf{M}; M) copulas:

\mathbf{\Pi} \ast \mathbf{C} = \mathbf{C} \ast \mathbf{\Pi} = \mathbf{\Pi}\mbox{,}

\mathbf{M} \ast \mathbf{C} = \mathbf{C} \ast \mathbf{M} = \mathbf{M}\mbox{,}

\bigl(\mathbf{W} \ast \mathbf{C}\bigr)(u,v) = v - \mathbf{C}(1-u, v)\mbox{\ and\ } \bigl(\mathbf{C} \ast \mathbf{W}\bigr)(u,v) = u - \mathbf{C}(u, 1-v)\mbox{, and}

\mathbf{W} \ast \mathbf{W} = \mathbf{M}\mbox{ and } \mathbf{W} \ast \mathbf{C} \ast \mathbf{W} = \hat{\mathbf{C}}\mbox{,}

where \hat{\mathbf{C}} is the survival copula (surCOP). The \ast-product is associative:

\mathbf{A} \ast (\mathbf{B} \ast \mathbf{C}) = (\mathbf{A} \ast \mathbf{B}) \ast \mathbf{C}\mbox{,}

but \ast-product is not commutative (order independent). Nelsen (2006, p. 245) reports that “if we view \ast as a binary operation on the set of copulas, then \mathbf{\Pi} is the null element, and \mathbf{M} is the identity.” Copula mulitiplication is closely linked to Markov Processes (Nelsen, 2006, pp. 244–248).

For other descriptions and computations of copula combination are possible using the copBasic package, see convexCOP, convex2COP, composite1COP, composite2COP, composite3COP, glueCOP, and convexCOP.

Usage

prod2COP(u,v, cop1=NULL, para1=NULL, cop2=NULL, para2=NULL, para=NULL,
              interval=NULL, ...)

Arguments

u

Nonexceedance probability u in the X direction;

v

Nonexceedance probability v in the Y direction;

cop1

The \mathbf{C}_1(u,v; \Theta_1) copula function with vectorization as in asCOP;

para1

Vector of parameters or other data structures for \Theta_1, if needed, to pass to copula \mathbf{C}_1(u,v; \Theta_1);

cop2

The \mathbf{C}_2(u,v; \Theta_2) copula function with vectorization as in asCOP;

para2

Vector of parameters or other data structures for \Theta_2, if needed, to pass to copula \mathbf{C}_2(u,v; \Theta_2);

para

An R list that can take the place of the cop1, para1, cop2, and para2 arguments. These four will be populated from same named elements of the list, and if the other four arguments were specified through the function interface, these are silently ignored;

interval

An optional interval for the above integral. The default is \mathcal{I} = [0,1] but the option of the user to replace exact end points with “small” numbers is possible (e.g. interval=c(lo, 1-lo) for say lo=.Machine$double.eps); and

...

Additional arguments to pass to the copulas.

Value

Value(s) for the copula are returned.

Note

The Farlie–Gumbel–Morgenstern copula (\mathbf{FGM}(u,v; \Theta); FGMcop) is

\mathbf{FGM}(u,v; \Theta) = uv[1+\Theta(1-u)(1-v)]\mbox{,}

where -1 \le \Theta \le 1. Nelsen (2006, exer. 6.12, p. 249) asserts that for \mathbf{FGM}_(\Theta = \alpha) and \mathbf{FGM}_(\Theta = \beta) with \ast-product as \mathbf{FGM}_\alpha \ast \mathbf{FGM}_\beta that a closed-form solution exists and is

\mathbf{FGM}_\alpha \ast \mathbf{FGM}_\beta = \mathbf{FGM}_{(\alpha\beta) / 3}\mbox{.}

This assertion is numerically true as readily verified using the prod2COP function:

  u <- c(0.41, 0.87); v <- c(0.13,0.35); A <- -0.532; B <- 0.235
  FGMcop(  u,v, para= A*B / 3) # 0.0521599 and 0.3034277, matched by prod2COP()
  prod2COP(u,v, cop1=FGMcop, para1=A, cop2=FGMcop, para2=B)

Author(s)

W.H. Asquith

References

Nelsen, R.B., 2006, An introduction to copulas: New York, Springer, 269 p.

See Also

COP, composite1COP, composite2COP, composite3COP, convexCOP, convex2COP, glueCOP

Examples

## Not run: 
# Product P * N4212 ---> P (by identity)
u <- c(0.41, 0.87); v <- c(0.13,0.35)
prod2COP(u,v, cop1=P, cop2=N4212cop, para1=NA, para2=2.12) # 0.0533 and 0.3045
COP(u,v, cop=P)                                            # 0.0533 and 0.3045
## End(Not run)

## Not run: 
para <- list(cop1=PLcop, para1=0.19, cop2=PLcop, para2=34.5)
UV <- simCOP(n=1000, cop=prod2COP, para=para)
# This is large simulation run (with a lot of numerical operations) is expected
# at least for the Placketts and chosen parameters to trigger one or more NAs
# from derCOPinv().  The simCOP() function simply continues on with ignoring the
# solution or lack thereof for certain combinations, and simCOP() will report how
# many of the simulated values for sample of size n were computed. For example,
# for one n=1000, some 965 simulated values were returned. The Spearman Rho is
rhoCOP(cop=prod2COP, para=para) # -0.4271195 (theoretical)
rhoCOP(para=UV, as.sample=TRUE) # -0.4284223 (the test n=1000 --> n=965 sample)
## End(Not run)

copBasic documentation built on Oct. 17, 2023, 5:08 p.m.