Learn R Programming

copBasic (version 1.7.1)

isCOP.PQD: The Positively Quadrant Dependency State of a Copula

Description

Numerically determine the global property of the positively quadrant dependency (PQD) characteristic of a copula as described by Nelsen (2006, p. 188). The random variables $X$ and $Y$ are PQD if for all $(x,y)$ in $\mathcal{R}^2$ when $H(x,y) \ge F(x)G(x)$ for all $(x,y)$ in $\mathcal{R}^2$ and thus by the copula $\mathbf{C}(u,v) \ge uv$ for all $(u,v)$ in $\mathcal{I}^2$. Alternatively, this means that $\mathbf{C}(u,v) \ge \mathbf{\Pi}$ or globally greater than independence ($uv$).

Nelsen (2006) shows that a copula is PQD when $$0 \le \beta_\mathbf{C} \mbox{,\ } 0 \le \gamma_\mathbf{C}\mbox{,\ and\ } 0 \le \rho_\mathbf{C} \le 3\tau_\mathbf{C}\mbox{,}$$ where $\beta_\mathbf{C}$, $\gamma_\mathbf{C}$, $\rho_\mathbf{C}$, and $\tau_\mathbf{C}$ are various copula measures of association or concordance that are described in blomCOP, giniCOP, rhoCOP, and tauCOP. The concept of negatively quadrant dependency (NQD) is the reverse: $\mathbf{C}(u,v) \le \mathbf{\Pi}$ for all $(u,v)$ in $\mathcal{I}^2$; so NQD is globally smaller than independence.

Conceptually, PQD is related to the probability that two random variables are simultaneously small (or simultaneously large) is at least as great as it would be if they were independent. The graph of a PQD copula lies on or above the copulatic surface of the independence copula $\mathbf{\Pi}$, and conversely a NQD copula lies on or below $\mathbf{\Pi}$.

Albeit a global property of a copula, there can be local variations in the PQD/NQD state. Points in $(u,v)$ where $\mathbf{C}(u,v) - \mathbf{\Pi} \ge 0$ are locally PQD, whereas points in $(u,v)$ where $\mathbf{C}(u,v) - \mathbf{\Pi} \le 0$ and locally NQD. The second example shown is a dramatic case where a switch over from NQD to PQD is made about 0.25 joint probability up the diagonal.

Readers are directed to the last examples wolfCOP because as those examples involve the copulatic difference from independence $\mathbf{C}(u,v) - \mathbf{\Pi} = \mathbf{C}(u,v) - \mathbf{\Pi}$ with 3-D renderings.

Usage

isCOP.PQD(cop=NULL, para=NULL, uv=NULL, empirical=FALSE, verbose=TRUE, ...)

Arguments

cop
A copula function;
para
Vector of parameters or other data structure, if needed, to pass to the copula;
uv
An optional Rdata.frame of $U$ and $V$ nonexceedance probabilities $u$ and $v$ for the random variables $X$ and $Y$;
empirical
A logical that will use sample versions for Gini's Gamma, Spearman's Rho, and Kendall's Tau. This feature is only applicable if the copula is empirical and therefore the para argument is the data.frame of $u$ and $v$, wh
verbose
A logical that will report the four concordance measures; and
...
Additional arguments to pass, which are then passed to subordinate functions.

Value

  • If uv=NULL then a logical for the global property of PQD is returned but if argument uv is a data.frame, then an Rlist is returned, and that list holds the global condition in global.PQD and local condition assessments in local.PQD and local.NQD.

References

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

See Also

blomCOP, giniCOP, rhoCOP, tauCOP, isCOP.LTD, isCOP.RTI

Examples

Run this code
isCOP.PQD(cop=PSP)
# Example concerning Empirical Bivariate Copula and sample versions for comparison.
set.seed(10); n <- 1000
para <- list(cop1=PLACKETTcop, cop2=PLACKETTcop, para1=0.145,  para2=1.45,
             alpha=0.81, beta=0.8)
D <- simCOP(n=n, cop=composite2COP, para=para, cex=0.5, col=rgb(0,0,0,0.2), pch=16)
#tauCOP(cop=EMPIRcop, para=D)   # ??? but == 1
cor(D$U, D$V, method="kendall") # -0.2852573
blomCOP(cop=EMPIRcop, para=D)   # -0.30
giniCOP(cop=EMPIRcop, para=D)   # ??? but fails
GINI <- sum(abs(rank(D$U)+rank(D$V)-n-1)) - sum(abs(rank(D$U)-rank(D$V)))
print(GINI/as.integer(n^2/2))   # -0.332380
rhoCOP(cop=EMPIRcop, para=D)    # ??? but fails
cor(D$U, D$V, method="spearman")      # -0.407031
lmomco::lcomoms2(D)$T2     #  1.0000000 -0.4066804
                           # -0.4064251  1.0000000

Run the code above in your browser using DataLab