PLACKETTcop(0.4,0.6,para=1)
P(0.4,0.6) # same two values because Theta == 1 is Independence
PLACKETTcop(0.4,0.6,para=10.25)
# Joe (2015, 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 <- (PLACKETTcop(u2, v2, para=10.25) - PLACKETTcop(u2, v1, para=10.25) -
PLACKETTcop(u1, v2, para=10.25) + PLACKETTcop(u1, v1, para=10.25))/del^2
dCanal <- dPLACKETTcop(u, v, para=10.25)
dCfunc <- densityCOP(u, v, cop=PLACKETTcop, 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 <- (PLACKETTcop(u2, v2, para=10.25) - PLACKETTcop(u1, v2, para=10.25))/del
dVr <- (PLACKETTcop(u2, v2, para=10.25) - PLACKETTcop(u2, v1, para=10.25))/del
dU <- derCOP(u, v, cop=PLACKETTcop, para=10.25)
dV <- derCOP2(u, v, cop=PLACKETTcop, para=10.25)
R <- round(c(dU, dV, dUr, dVr), digits=6)
message("Partial derivatives dU=", R[1], "and dUr=", R[3], "",
"dV=", R[2], "and dVr=", R[4])
Run the code above in your browser using DataLab