prod2COP | R Documentation |
Perform copula multiplication (so-called “\ast
-product” or Markov Product) (Darsow and others, 1992) 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
.
prod2COP(u,v, cop1=NULL, para1=NULL, cop2=NULL, para2=NULL, para=NULL,
pinterval=NULL, ...)
u |
Nonexceedance probability |
v |
Nonexceedance probability |
cop1 |
The |
para1 |
Vector of parameters or other data structures for |
cop2 |
The |
para2 |
Vector of parameters or other data structures for |
para |
An R |
pinterval |
An optional interval for the above integral. The default is |
... |
Additional arguments to pass to the copulas. |
Value(s) for the copula are returned.
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.0521598638574___ 0.3034277347150___ prod2COP(u,v, cop1=FGMcop, para1=A, cop2=FGMcop, para2=B) # 0.0521598638312605 0.3034277344807909
W.H. Asquith
Darsow, W.F., Nguyen, B., and Olsen, E.T., 1992, Copulas and Markov processes: Illinois Journal of Mathematics, v. 26, pp. 600–624, \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1215/IJM/1255987328")}.
Nelsen, R.B., 2006, An introduction to copulas: New York, Springer, 269 p.
COP
, composite1COP
, composite2COP
, composite3COP
,
convexCOP
, convex2COP
, glueCOP
## 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, resamv01=FALSE, showresamv01=FALSE)
# 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 defaults require
# that NAs, empty simulations, remain intact. We can try resampling:
UV <- simCOP(n=1000, cop=prod2COP, para=para, resamv01=TRUE, showresamv01=TRUE)
rhoCOP(cop=prod2COP, para=para) # -0.4271195 (theoretical)
rhoCOP(para=UV, as.sample=TRUE) # -0.4274703 #
## End(Not run)
## Not run:
para <- list(cop1=PLcop, para1=0.19, cop2=PLcop, para2=34.5)
# The prod2COP() might be one of the more sensitive to NAs in simulation because
# of the two partial numerical derivatives involved.
para$pinterval <- c(0.4, 0.6) # totally inappropriate interval for the integral
# for the prod2COP() definition. Because the ... are used so extensively, we have
# the "pinterval" for this function so that interval itself can be passed also.
UV <- simCOP(n=1000, cop=prod2COP, para=para, resamv01=TRUE, showresamv01=TRUE,
pinterval=c(0, 1 ))
UV <- simCOP(n=1000, cop=prod2COP, para=para, resamv01=TRUE, showresamv01=TRUE,
pinterval=c(0.4, 0.6)) #
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.