copBasic (version 2.1.5)

PLACKETTcop: The Plackett Copula

Description

The Plackett copula (Nelsen, 2006, pp. 89--92) is $$\mathbf{C}_\Theta(u,v) = \mathbf{PL}(u,v) = \frac{[1+(\Theta-1)(u+v)]-\sqrt{[1+(\Theta-1)(u+v)]^2 - 4uv\Theta(\Theta-1)}}{2(\Theta - 1)}\mbox{.}$$

The Plackett copula (\(\mathbf{PL}(u,v)\)) is comprehensive because as \(\Theta \rightarrow 0\) the copula becomes \(\mathbf{W}(u,v)\) (see W, countermonotonicity), as \(\Theta \rightarrow \infty\) the copula becomes \(\mathbf{M}(u,v)\) (see M, comonotonicity) and for \(\Theta = 1\) the copula is \(\mathbf{\Pi}(u,v)\) (see P, independence).

Nelsen (2006, p. 90) shows that $$\Theta = \frac{H(x,y)[1 - F(x) - G(y) + H(x,y)]}{[F(x) - H(x,y)][G(y) - H(x,y)]}\mbox{,}$$ where \(F(x)\) and \(G(y)\) are cumulative distribution function for random variables \(X\) and \(Y\), respectively, and \(H(x,y)\) is the joint distribution function. Only Plackett copulas have a constant \(\Theta\) for any pair \(\{x,y\}\). Hence, Plackett copulas are also known as constant global cross ratio or contingency-type distributions. The copula therefore is intimately tied to contingency tables and in particular the bivariate Plackett defined herein is tied to a \(2\times2\) contingency table. Consider the \(2\times 2\) contingency table shown at the end of this section, then \(\Theta\) is defined as

$$\Theta = \frac{a/c}{b/d} = \frac{\frac{a}{a+c}/\frac{c}{a+c}}{\frac{b}{b+d}/\frac{d}{b+d}}\mbox{\ and\ }\Theta = \frac{a/b}{c/d} = \frac{\frac{a}{a+b}/\frac{b}{a+b}}{\frac{c}{c+d}/\frac{d}{c+d}}\mbox{,}$$

where it is obvious that \(\Theta = ad/bc\) and \(a\), \(b\), \(c\), and \(d\) can be replaced by proporations for a sample of size \(n\) by \(a/n\), \(b/n\), \(c/n\), and \(d/n\), respectively. Finally, this copula has been widely used in modeling and as an alternative to bivariate distributions and has respective lower- and upper-tail dependency parameters of \(\lambda^L = 0\) and \(\lambda^U = 0\) (taildepCOP).

\({-}{-}\) Low High Sums
Low \(a\) \(b\) \(a+b\)
High \(c\) \(d\) \(c+d\)

Usage

PLACKETTcop(u, v, para=NULL, ...)
      PLcop(u, v, para=NULL, ...)

Arguments

u

Nonexceedance probability \(u\) in the \(X\) direction;

v

Nonexceedance probability \(v\) in the \(Y\) direction;

para

A vector (single element) of parameters---the \(\Theta\) parameter of the copula; and

...

Additional arguments to pass.

Value

Value(s) for the copula are returned.

References

Joe, H., 2014, Dependence modeling with copulas: Boca Raton, CRC Press, 462 p.

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

See Also

PLACKETTpar, PLACKETTsim, W, M, densityCOP

Examples

Run this code
# NOT RUN {
PLACKETTcop(0.4,0.6,para=1)
P(0.4,0.6) # independence copula, same two values because Theta == 1
PLcop(0.4,0.6,para=10.25) # joint probability through positive association

# }
# NOT RUN {
# Joe (2014, p. 164) shows the closed form copula density of the Plackett.
"dPLACKETTcop" <- function(u,v,para) {
   eta <- para - 1; A <- para*(1 + eta*(u+v-2*u*v))
   B <- ((1 + eta*(u+v))^2 - 4*para*eta*u*v)^(3/2); return(A/B)
}
u <- 0.08; v <- 0.67 # Two probabilities to make numerical evaluations.
del <- 0.0001 # a 'small' differential value of probability
u1 <- u; u2 <- u+del; v1 <- v; v2 <- v+del
# Density following (Nelsen, 2006, p. 10)
dCrect <- (PLcop(u2, v2, para=10.25) - PLcop(u2, v1, para=10.25) -
           PLcop(u1, v2, para=10.25) + PLcop(u1, v1, para=10.25))/del^2
dCanal <- dPLACKETTcop(u,  v,  para=10.25)
dCfunc <- densityCOP(u, v, cop=PLcop, para=10.25, deluv = del)
R <- round(c(dCrect, dCanal, dCfunc), digits=6)
message("Density: ", R[1], "(manual), ", R[2], "(analytical), ", R[3], "(function)");

# Comparison of partial derivatives
dUr <- (PLcop(u2, v2, para=10.25) - PLcop(u1, v2, para=10.25))/del
dVr <- (PLcop(u2, v2, para=10.25) - PLcop(u2, v1, para=10.25))/del
dU  <-  derCOP(u, v, cop=PLcop, para=10.25)
dV  <- derCOP2(u, v, cop=PLcop, para=10.25)
R   <- round(c(dU, dV, dUr, dVr), digits=6)
message("Partial derivatives dU=", R[1], " and dUr=", R[3], "\n",
        "                    dV=", R[2], " and dVr=", R[4]) #
# }

Run the code above in your browser using DataLab