concordCOP
) of a copula with itself. However, Nelsen (2006, p. 164) reports that this form is often not amenable to computation when there is a singular component to the copula and that the expression
derCOP
and derCOP2
. Nelsen's preferred expression is used by the tauCOP
function. Nelsen (2006, pp. 175--176) reports that the following relation between $\tau_\mathbf{C}$ and $\rho_\mathbf{C}$ (rhoCOP
) exists
$-1 \le 3\tau - 2\rho \le 1$ (see rhoCOP
for more details).Nelsen (2006, pp. 160--161) lists some special identities involving $\mathcal{Q}(\mathbf{C}_1,\mathbf{C}_2)$:
Kendall's Tau also can be expressed in terms of the Kendall Function ($F_K(z)$; kfuncCOP
):
tauCOP(cop=N4212cop, para=2)
). Note that Durante and Sempi have erroneously dropped the multiplication by
tauCOP( cop=NULL, para=NULL,
cop2=NULL, para2=NULL, as.sample=FALSE, brute=FALSE, delta=0.002, ...)concordCOP(cop=NULL, para=NULL, cop2=NULL, para2=NULL, ...)
data.frame
in para
is used to compute the $\hat\tau$ by dispatch to cor()
function in Rwith method = "kendall"
;integrate()
functions in Rto perform the double integration;brute
; andNelsen, R.B., 2006, An introduction to copulas: New York, Springer, 269 p.
Nelsen, R.B., Quesada-Molina, J.J.,
blomCOP
, footCOP
, giniCOP
,
hoefCOP
, rhoCOP
, wolfCOP
,
joeskewCOP
, uvlmoms
,
derCOP
, derCOP2
, kfuncCOP
tauCOP(cop=PSP) # 1/3
# Now compute Kendall Tau via integration of the Kendall Function.
# 3 - 4*integrate(function(t) kfuncCOP(t, cop=PSP), 0, 1)$value # 0.3333314
tauCOP(cop=PSP, brute=TRUE) # 0.3306625
# CPU heavy example showing that the dual-integration (fast) results in
# a Kendall's Tau that matches a sample version
dotau <- function(n) {
uv <- simCOP(n=n, cop=PSP, ploton=FALSE, points=FALSE)
return(cor(uv$U, uv$V, method="kendall"))
}
taus <- replicate(100, dotau(1000))
tau.sample <- mean(taus); print(tau.sample) # 0.3333763
# Nelsen (2006, pp. 160-161, numeric results shown thereine)
# The rational values or integers may be derived analytically.
tauCOP(cop=M, cop2=M) # 1, correct
tauCOP(cop=M, cop2=P) # 1/3, correct
tauCOP(cop=P, cop2=M) # 1/3, correct
tauCOP(cop=M, cop2=W) # 0, correct
tauCOP(cop=W, cop2=M) # throws warning, swaps copulas, == tauCOP(M,W)
tauCOP(cop=W, cop2=P) # throws warning, swaps copulas, approx. -1/3
tauCOP(cop=P, cop2=W) # -1/3, correct
tauCOP(cop=P, cop2=P) # 0, correct
tauCOP(cop=M, cop2=W, brute=TRUE) # 0, correct
para <- list(cop1=PLACKETTcop, cop2=PLACKETTcop,
para1=0.00395, para2=4.67, alpha=0.9392, beta=0.5699)
tauCOP(cop=composite2COP, para=para)
para <- list(cop1=PLACKETTcop, cop2=PLACKETTcop,
para1=0.14147, para2=20.96, alpha=0.0411, beta=0.6873)
tauCOP(cop=composite2COP, para=para)
para <- list(cop1=PLACKETTcop, cop2=PLACKETTcop,
para1=0.10137, para2=4492.87, alpha=0.0063, beta=0.0167)
# Theoretical attempt fails because para2 is large and thus a singularity
# is emerging and internal copula swapping does not help.
tauCOP(cop=composite2COP, para=para) # fails
tauCOP(cop=composite2COP, para=para, brute=TRUE) # about 0.95
Run the code above in your browser using DataLab