Learn R Programming

copBasic (version 1.7.1)

composite3COP: (Extended) Composition of Two Copulas with Four Compositing Parameters

Description

The (extended) composition of two copulas (Salvadori et al., 2006, p. 266, Prop. C.4) provides for even more sophisticated structures of dependence between variables than two-copula composition in composite2COP. Let $\mathbf{A}$ and $\mathbf{B}$ be copulas with respective parameters $\Theta_\mathbf{A}$ and $\Theta_\mathbf{B}$, then

$$\mathbf{C}_{\alpha,\beta,\kappa,\gamma}(u,v) = u^\kappa v^\gamma \cdot \mathbf{A}([u^{1-\kappa}]^\alpha, [v^{1-\gamma}]^\beta) \cdot \mathbf{B}([u^{1-\kappa}]^{1-\alpha},[v^{1-\gamma}]^{1-\beta})\mbox{,}$$

defines a family of copulas $\mathbf{C}_{\alpha,\beta,\kappa,\gamma}$ with four compositing parameters $\alpha,\beta,\kappa,\gamma \in \mathcal{I}:[0,1]$.

It is important to stress that copulas $\mathbf{A}_{\Theta_A}$ and $\mathbf{B}_{\Theta_B}$ can be of different families and each parameterized accordingly by the values $\Theta_A$ and $\Theta_B$. This is an interesting observation in the context of building complex copulatic structures in pursuit of fitting asymmetric measures of dependency such as the L-comoments available in the lmomco package.

Usage

composite3COP(u,v,para,...)

Arguments

u
Nonexceedance probability $u$ in $X$ direction;
v
Nonexceedance probability $v$ in $Y$ direction;
para
A special parameter list (see Note); and
...
Additional arguments to pass.

Value

  • A value for the composited copula is returned.

References

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

Salvadori, G., De Michele, C., Kottegoda, N.T., and Rosso, R., 2007, Extremes in Nature---An approach using copulas: Springer, 289 p.

See Also

simCOP, composite1COP, composite2COP, simcomposite3COP

Examples

Run this code
para <- list(cop1=PLACKETTcop, cop2=N4212cop,
             para1=10^(runif(1,min=-5,max=5)), para2=runif(1,min=1,max=100),
             alpha=runif(1), beta=runif(1), kappa=runif(1), gamma=runif(1))
txts <- c("Alpha=",       round(para$alpha, digits=4),
          "; Beta=",      round(para$beta,  digits=4),
          "; Kappa=",     round(para$kappa, digits=4),
          "; Gamma=",    round(para$gamma,  digits=4),
          "; Theta1=", round(para$para1[1], digits=5),
          "; Theta2=", round(para$para2[1], digits=2))
layout(matrix(1:2,byrow=TRUE))
D <- simCOP(n=300, cop=composite3COP, para=para, cex=0.5, col=rgb(0,0,0,0.2), pch=16)
mtext(paste(txts,collapse=""))

f <- round(runif(1),digits=2)
ftxt <- c("Sectionals (thick) and derivatives (thin) at f=",f," nonexceedance prob.")
segments(f,0,f,1, col=3, lwd=2); segments(0,f,1,f, col=2, lwd=2)
t <- sectionCOP(f,cop=composite3COP,para=para, col=3, lwd=4)
t <- sectionCOP(f,cop=composite3COP,para=para, dercop=TRUE, ploton=FALSE, col=3)
t <- sectionCOP(f,cop=composite3COP,para=para, wrtV=TRUE,   ploton=FALSE, col=2, lwd=4)
t <- sectionCOP(f,cop=composite3COP,para=para, wrtV=TRUE, dercop=TRUE,
                  ploton=FALSE, col=2)
mtext(paste(ftxt, collapse=""))
mainpara <- list(cop1=PLACKETTcop, cop2=PLACKETTcop,
                 para1gen=function() { return(10^runif(1, min=-5, max=5)) },
                 para2gen=function() { return(10^runif(1, min=-5, max=5)) })
n.sample <- 200; n <- 20000 # really used 20000 for generation of the data set
PlackettPlackettABKG <- simcomposite3COP(n=n.sample, nsim=n, parent=mainpara)
save(PlackettPlackettABKG, file="PlackettPlackettABKG.RData", compress="xz")

Run the code above in your browser using DataLab