ORDSUMcop {copBasic} | R Documentation |
Ordinal Sums of M-Copula
Description
Compute ordinal sums of a copula (Nelsen, 2006, p. 63) or M-ordinal sum of the summands (Klement et al., 2017) within into
partitions (possibly infinite) within
. According to Nelsen, letting
denote a partition of
and
be the
th partition that does not overlap with others and letting also
be a copula for the
th partition, then the ordinal sum of these
with parameters
with respect to
is the copula
given by
for points within the partitions, and for points otherwise outside the partitions the coupla is given by
let be a convenient abbreviation for the copula. Finally, Nelsen (2006, theorem 3.2.1) states that a copula is an ordinal sum if and only if for a
if
for
. The diagonal of a coupla can be useful for quick assessment (see Examples) of this theorem. (See
ORDSUWcop
, W-ordinal sum of the summands.)
Usage
ORDSUMcop(u,v, para=list(cop=W, para=NA, part=c(0,1)), ...)
Arguments
u |
Nonexceedance probability |
v |
Nonexceedance probability |
para |
A list of sublists for the coupla, parameters, and partitions (see Examples) and some attempt for intelligent in-fill of |
... |
Additional arguments to pass. |
Value
Value(s) for the copula are returned.
Author(s)
W.H. Asquith
References
Nelsen, R.B., 2006, An introduction to copulas: New York, Springer, 269 p.
Klement, E.P., Kolesárová, A., Mesiar, R., Saminger-Platz, S., 2017, Copula constructions using ultramodularity (chap. 9) 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
copBasic-package
, W_N5p12a
, ORDSUWcop
Examples
## Not run:
para <- list(cop=c(CLcop, M, PLcop, GHcop), para=list(4, NA, 0.1, c(3,4)),
part=list(c(0,0.25), c(0.25,0.35), c(0.35,0.85), c(0.85,1)))
UV <- simCOP(n=100, cop=ORDSUMcop, para=para, ploton=FALSE)
plot(c(0,1), c(0,1), xlab="U, NONEXCEEDANCE PROBABILITY", type="n",
ylab="V, NONEXCEEDANCE PROBABILITY")
for(k in seq_len(length(para$part))) { # to draw the partitions
a <- para$part[[k]][1]; b <- para$part[[k]][2]
polygon(c(a, b, b, a, a), c(a,a,b,b,a), lty=2, lwd=0.8, col="lightgreen")
text((a+b)/2, (a+b)/2, k, cex=3, col="blue") # numbered by partition
}
points(UV, pch=21, cex=0.8, col=grey(0.1), bg="white") #
## End(Not run)
## Not run:
para <- list(cop=c(GHcop), para=list(c(2,3)), # internally replicated
part=list(c(0,0.2), c(0.2,0.3), c(0.3,0.5), c(0.5,0.7), c(0.7,1)))
UV <- simCOP(n=100, cop=ORDSUMcop, para=para, ploton=FALSE)
plot(c(0,1), c(0,1), xlab="U, NONEXCEEDANCE PROBABILITY", type="n",
ylab="V, NONEXCEEDANCE PROBABILITY")
for(k in seq_len(length(para$part))) { # to draw the partitions
a <- para$part[[k]][1]; b <- para$part[[k]][2]
polygon(c(a, b, b, a, a), c(a,a,b,b,a), lty=2, lwd=0.8, col="lightgreen")
text((a+b)/2, (a+b)/2, k, cex=3, col="blue") # numbered by partition
}
points(UV, pch=21, cex=0.8, col=grey(0.1), bg="white") #
## End(Not run)
## Not run:
# In this example, it is important that the delt is of the resolution
# matching the edges of the partitions.
para <- list(cop=P, para=list(NULL),
part=list(c(0,0.257), c(0.257,0.358), c(0.358,1)))
DI <- diagCOP(cop=ORDSUMcop, para=para, delt=0.001)
if(sum(DI$diagcop == DI$t) >= 1) {
message("The ORDSUMcop() operation is an ordinal sum if there exists\n",
"a t=(0,1) exists such that C(t,t)=t by Nelsen (2006, theorem 3.2.1).")
}
abline(0,1, col="red") #
## End(Not run)