tauCOP {copBasic}R Documentation

The Kendall Tau and Concordance Function of a Copula

Description

Compute the measure of association known as the Kendall Tau (\tau_\mathbf{C}) of a copula (\tau_\mathbf{C}) according to Nelsen (2006, sec. 5.1.1 and p. 161) by

\tau_\mathbf{C} = \mathcal{Q}(\mathbf{C}, \mathbf{C}) = 4\int\!\!\int_{\mathcal{I}^2} \mathbf{C}(u,v)\,\mathrm{d}\mathbf{C}(u,v) - 1\mbox{,}

where \mathcal{Q}(\mathbf{C}, \mathbf{C}) is a concordance function (concordCOP) of a copula with itself. Nelsen (2006, p. 164) reports however that this form is often not amenable to computation when there is a singular component to the copula and that the expression

\tau_\mathbf{C} = 1 - 4\int\!\!\int_{\mathcal{I}^2} \frac{\delta\mathbf{C}(u,v)}{\delta u} \frac{\delta\mathbf{C}(u,v)}{\delta v}\, \mathrm{d}u\mathrm{d}v

is to be preferred. Such an expression hence relies on the partial numerical derivatives of the copula provided by derCOP and derCOP2. The Nelsen (2006) preferred expression is used by the tauCOP function. Nelsen (2006, pp. 175–176) reports that the relation between \tau_\mathbf{C} and \rho_\mathbf{C} (rhoCOP) is -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):

\mathcal{Q}(\mathbf{M}, \mathbf{M}) = 4\int_0^1 u\,\mathrm{d}u - 1 = 1\mbox{,}

\mathcal{Q}(\mathbf{M}, \mathbf{\Pi}) = 4\int_0^1 u^2\,\mathrm{d}u - 1 = 1/3\mbox{,}

\mathcal{Q}(\mathbf{M}, \mathbf{W}) = 4\int_{1/2}^1 (2u-1)\,\mathrm{d}u - 1 = 0\mbox{,}

\mathcal{Q}(\mathbf{W}, \mathbf{\Pi}) = 4\int_0^1 u(1-u)\,\mathrm{d}u - 1 = -1/3\mbox{,}

\mathcal{Q}(\mathbf{W}, \mathbf{W}) = 4\int_0^1 0\,\mathrm{d}u - 1 = -1\mbox{, and}

\mathcal{Q}(\mathbf{\Pi}, \mathbf{\Pi}) = 4\int\!\!\int_{\mathcal{I}^2} uv\,\mathrm{d}u\mathrm{d}v - 1 = 0\mbox{.}

Kendall Tau also can be expressed in terms of the Kendall Function (F_K(z); kfuncCOP):

\tau_\mathbf{C} = 3 - 4\int_0^1 F_K(t)\,\mathrm{d}t\mbox{,}

which is readily verified by code shown in Examples. This definition might be useful if integration errors are encountered for some arbitrary copula and arbitrary parameter set. In fact, should two attempts (see source code) at dual integration of the partial derivatives occur, the implementation switches over to integration of the Kendall Function (e.g. tauCOP(cop=N4212cop, para=2)). Note, Durante and Sempi have erroneously dropped the multiplication by “4” as shown above in their definition of \tau_\mathbf{C} as a function of F_K(t) (Durante and Sempi, 2015, eq. 3.9.4, p. 121).

Usage

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, ...)

Arguments

cop

A copula function;

para

Vector of parameters or other data structure, if needed, to pass to the copula;

cop2

A second copula function;

para2

Vector of parameters or other data structure, if needed, to pass to the second copula;

as.sample

A logical controlling whether an optional R data.frame in para is used to compute the \hat\tau by dispatch to cor() function in R with method = "kendall";

brute

Should brute force be used instead of two nested integrate() functions in R to perform the double integration;

delta

The \mathrm{d}u and \mathrm{d}v for the brute force integration using brute; and

...

Additional arguments to pass on to derCOP and derCOP2.

Value

The value for \tau_\mathbf{C} is returned.

Note

Although titled for computation of the Kendall Tau, the tauCOP function also is the implementation of the concordance function \mathcal{Q}(\mathbf{C}_1, \mathbf{C}_2) (see Nelsen (2006, pp. 158–159) when given two different copulas and respective parameters as arguments. The function concordCOP just dispatches to tauCOP. A useful relation is

\int\!\!\int_{\mathcal{I}^2} \mathbf{C}_1(u,v)\,\mathrm{d}\mathbf{C}_2(u,v) = \frac{1}{2} - \int\!\!\int_{\mathcal{I}^2} \frac{\delta}{\delta u}\mathbf{C}_1(u,v)\,\frac{\delta}{\delta v}\mathbf{C}_2(u,v)\,\mathrm{d}u\mathrm{d}v\mbox{,}

where \mathbf{C}_1(u,v) is the first copula and \mathbf{C}_2(u,v) is the second copula.

Nelsen et al. (2001, p. 281) lists several measures of association defined by the concordance function:
\mbox{}\quad\mathrm{1.}\quad\mbox{}\tau_\mathbf{C} = \quad\ \mathcal{Q}(\mathbf{C}, \mathbf{C}) : (Kendall Tau; tauCOP);
\mbox{}\quad\mathrm{2.}\quad\mbox{}\rho_\mathbf{C} = 3\cdot\mathcal{Q}(\mathbf{C}, \mathbf{\Pi}) : (Spearman Rho; rhoCOP);
\mbox{}\quad\mathrm{3.}\quad\mbox{}\gamma_\mathbf{C} = 2\cdot\mathcal{Q}(\mathbf{C}, [\mathbf{M}+\mathbf{W}]/2) : (Gini Gamma; giniCOP); and
\mbox{}\quad\mathrm{4.}\quad\mbox{}\psi_\mathbf{C} = \frac{3}{2}\cdot\mathcal{Q}(\mathbf{C}, \mathbf{M}) - \frac{1}{2} : (Spearman Footrule; footCOP).

Author(s)

W.H. Asquith

References

Durante, F., and Sempi, C., 2015, Principles of copula theory: Boca Raton, CRC Press, 315 p.

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

Nelsen, R.B., Quesada-Molina, J.J., Rodríguez-Lallena, J.A., and Úbeda-Flores, M., 2001, Distribution functions of copulas—A class of bivariate probability integral transforms: Statistics and Probability Letters, v. 54, no. 3, pp. 277–282.

See Also

blomCOP, footCOP, giniCOP, hoefCOP, rhoCOP, wolfCOP, joeskewCOP, uvlmoms, derCOP, derCOP2, kfuncCOP

Examples

## Not run: 
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
## End(Not run)

## Not run: 
tauCOP(cop=PSP, brute=TRUE) # 0.3306625
# CPU heavy example showing that the dual-integration (fast) results in
# a Kendall 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"))
}
set.seed(817600)
taus <- replicate(100, dotau(100))
tau.sample <- mean(taus); print(tau.sample) # 0.3342034
## End(Not run)

## Not run: 
# 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
## End(Not run)

## Not run: 
para <- list(cop1=PLACKETTcop,  cop2=PLACKETTcop,
             para1=0.00395, para2=4.67, alpha=0.9392, beta=0.5699)
tauCOP(cop=composite2COP, para=para) # -0.4671213

para <- list(cop1=PLACKETTcop,  cop2=PLACKETTcop,
             para1=0.14147, para2=20.96, alpha=0.0411, beta=0.6873)
tauCOP(cop=composite2COP, para=para) # +0.1950727

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 (0.94+-.01)
tauCOP(cop=composite2COP, para=para, brute=TRUE) # about 0.94+-.01
## End(Not run)

[Package copBasic version 2.2.4 Index]