The author has often emphasized surCOP
). This syntax tries to mimic and accentuate the word usage in Nelsen (2006) and Joe (2014). The
The italics then is used to highlight this vocabulary in order to draw connections between concepts. In conjunction with the function summary in copBasic-package, the extensive function cross referencing throughout and indexing of this documentation should also help. The author had no experience with copulas and really multivariate probability theory---although applied problems were beginning to emerge---prior to happening upon Nelsen (2006). The
A few comments on notation are needed. A bold math typeface is used to represent a copula such as $\mathbf{\Pi}$ (see P
) for the independence copula. The syntax $\mathcal{R}\times\mathcal{R} \equiv \mathcal{R}^2$ denotes the orthogonal domain of two real numbers, and $[0,1]\times [0,1]$ $\equiv$ $\mathcal{I}\times\mathcal{I} \equiv \mathcal{I}^2$ denotes the orthogonal domain on the unit square of probabilities. Limits of integration $[0,1]$ or $[0,1]^2$ involving copulas thus are shown as $\mathcal{I}$ and $\mathcal{I}^2$, respectively.
The random variables $X$ and $Y$ respectively denote the horizontal and vertical directions in $\mathcal{R}^2$. Their probabilistic counterparts are uniformly distributed random variables on $[0,1]$, are respectively denoted as $U$ and $V$, and necessarily also are the directions in $\mathcal{I}^2$. Often realizations of these random variables are respectively $x$ and $y$ for $X$ and $Y$ and $u$ and $v$ for $U$ and $V$.
There is an obvious difference between nonexceedance probability $F$ and exceedance probability $1-F$. Both $u$ and $v$ are measures in nonexceedance (cumulative probability). Arguments to many functions herein are u
$= u$ and v
$= v$ and are almost exclusively nonexceedance but there are instances for which u
$= 1 - u = u'$ and v
$= 1 - v = v'$.
Helpful Navigation of the copBasic Package
Some helpful guideposts into the package are listed in the following table:
COP
copula theory
Survival copula $\hat\mathbf{C}(u',v')$ surCOP
copula theory
Joint survival function $\overline{\mathbf{C}}(u,v)$ surfuncCOP
copula theory
Co-copula $\mathbf{C}^\star(u',v')$ coCOP
copula theory
Dual of a copula $\tilde\mathbf{C}(u,v)$ duCOP
copula theory
Primary copula diagonal $\delta(t)$ diagCOP
copula theory
Secondary copula diagonal $\delta^\star(t)$ diagCOP
copula theory
Inverse copula diagonal $\delta^{(-1)}(f)$ diagCOPatf
copula theory
Joint probability ${-}{-}$ jointCOP
copula theory
Blomqvist's Beta $\beta_\mathbf{C}$ blomCOP
bivariate association
Gini's Gamma $\gamma_\mathbf{C}$ giniCOP
bivariate association
Hoeffding's Phi $\Phi_\mathbf{C}$ hoefCOP
bivariate association
Joe's Nu-Skew $\nu_\mathbf{C}$ joeskewCOP
bivariate association
Joe's Nu-Skew-Star $\nu^\star_\mathbf{C}$ joeskewCOP
bivariate association
Lp distance $\Phi_\mathbf{C} \rightarrow L_p$ LpCOP
bivariate association
Kendall's Tau $\tau_\mathbf{C}$ tauCOP
bivariate association
Kendall's Measure $K_\mathbf{C}(z)$ kmeasCOP
copula theory
Kendall's Function $F_K(z)$ kfuncCOP
copula theory
Inverse Kendall's Function $F_K^{(-1)}(z)$ kfuncCOPinv
copula theory
An L-moment of $F_K(z)$ $\lambda_r(F_K)$ kfuncCOPlmom
L-moment theory
L-moments of $F_K(z)$ $\lambda_r(F_K)$ kfuncCOPlmoms
L-moment theory
Semi-correlations $\rho_N^{-}(a)$ semicorCOP
bivariate tail association
Semi-correlations $\rho_N^{+}(a)$ semicorCOP
bivariate tail association
Spearman's Footrule $\psi_\mathbf{C}$ footCOP
bivariate association
Spearman's Rho $\rho_\mathbf{C}$ rhoCOP
bivariate association
Schweizer and Wolff's Sigma $\sigma_\mathbf{C}$ wolfCOP
bivariate association
Lower-bounds copula $\mathbf{W}(u,v)$ W
copula
Independence copula $\mathbf{\Pi}(u,v)$ P
copula
Upper-bounds copula $\mathbf{M}(u,v)$ M
copula
FRECHETcop
copula
Galambos copula $\mathbf{GL}(u,v)$ GLcop
copula
Gumbel-Hougaard copula $\mathbf{GH}(u,v)$ GHcop
copula
HRcop
copula
Plackett copula $\mathbf{PL}(u,v)$ PLACKETTcop
copula
PSP copula $\mathbf{PSP}(u,v)$ PSP
copula
Density $c(u,v)$ densityCOP
copula density
Density visualization ${-}{-}$ densityCOPplot
copula density
Empirical copula $\mathbf{C}_n(u,v)$ EMPIRcop
copula
Empirical simulation ${-}{-}$ EMPIRsim
copula simulation
Empirical simulation ${-}{-}$ EMPIRsimv
copula simulation
Empirical copulatic surface ${-}{-}$ EMPIRgrid
copulatic surface
Parametric copulatic surface ${-}{-}$ gridCOP
copulatic surface
Parametric simulation ${-}{-}$ simCOP
copula simulation
Parametric simulation ${-}{-}$ simCOPmicro
copula simulation
}
Several of the functions listed above are measures of tauCOP
; Spearman's Rho, rhoCOP
) are familiar and Rprovides native support for their sample estimation of course but each function can be used to call R's cor()
function for parallelism to the other measures. The other measures (Blomqvist's Beta, Gini's Gamma, Hoeffding's Phi, Schweizer and Wolff's Sigma, Spearman's Footrule) support sample estimation by specially formed calls to their respective functions: blomCOP
, giniCOP
, hoefCOP
, wolfCOP
, and footCOP
. The documentation for Gini's Gamma (giniCOP
) shows extensive use of theoretical and sample compuations for all of these functions. Lastly and related, bivariate skewness measures are supported in joeskewCOP
(nuskewCOP
and nustarCOP
) and uvlmoms
(uvskew
). Extensive discussion and example computations of bivariate skewness is provided in the joeskewCOP
documentation.
Bivariate random simulation by several functions is identified in the previous table. The simCOPmicro
, simCOP
, derCOPinv
, derCOPinv2
). There are many other methods in the literature and available in R. A comparison of methods is made in the Examples section of the Gumbel-Hougaard copula (GHcop
).
Several functions in COPinv
copula operator
Copula inversion $U$ wrt $V$ COPinv2
copula operator
Copula derivative $\delta \mathbf{C}/\delta u$ derCOP
copula operator
Copula derivative $\delta \mathbf{C}/\delta v$ derCOP2
copula operator
Copula derivative inversion $V$ wrt $U$ derCOPinv
copula operator
Copula derivative inversion $U$ wrt $V$ derCOPinv2
copula operator
Level curves $t \mapsto \mathbf{C}(u=U, v)$ joint.curvesCOP
copula theory
Level curves $t \mapsto \mathbf{C}(u=U, v)$ level.curvesCOP
copula theory
Level curves $t \mapsto \mathbf{C}(u, v=V)$ level.curvesCOP2
copula theory
Level set $V$ wrt $U$ level.setCOP
copula theory
Level set $U$ wrt $V$ level.setCOP2
copula theory
Median regression $V$ wrt $U$ med.regressCOP
copula theory
Median regression $U$ wrt $V$ med.regressCOP2
copula theory
Quantile regression $V$ wrt $U$ qua.regressCOP
copula theory
Quantile regression $U$ wrt $V$ qua.regressCOP2
copula theory
Copula section $t \mapsto \mathbf{C}(t,a)$ sectionCOP
copula theory
Copula section $t \mapsto \mathbf{C}(a,t)$ sectionCOP
copula theory
}
The two tables do not include all of the myriad of special functions to support similar operations on empirical copulas. All empirical copula operators and utilites are prepended with EMPIR
in the function name. An additional note concerning package nomenclature is that an appended 2
to a function name indicates
$U$ wrt $V$ (e.g. EMPIRgridderinv2
for an inversion of the partial derivatives $\delta \mathbf{C}/\delta v$ across the grid of the empirical copula).
Some additional functions to compute often salient features or characteristics of copulas, including functions for bivariate inference or goodness-of-fit, are listed in the following table:
isCOP.LTD
bivariate association
Left-tail decreasing $U$ wrt $V$ isCOP.LTD
bivariate association
Right-tail increasing $V$ wrt $U$ isCOP.RTI
bivariate association
Right-tail increasing $U$ wrt $V$ isCOP.RTI
bivariate association
Tail concentration function $q_\mathbf{C}(t)$ tailconCOP
bivariate tail association
Tail (lower) dependency $\lambda^L_\mathbf{C}$ taildepCOP
bivariate tail association
Tail (upper) dependency $\lambda^U_\mathbf{C}$ taildepCOP
bivariate tail association
Tail (lower) order $\kappa^L_\mathbf{C}$ tailordCOP
bivariate tail association
Tail (upper) order $\kappa^U_\mathbf{C}$ tailordCOP
bivariate tail association
Neg'ly quadrant dependency NQD isCOP.PQD
bivariate association
Pos'ly quadrant dependency PQD isCOP.PQD
bivariate association
Permutation symmetry $\mathrm{permsym}$ isCOP.permsym
copula symmetry
Radial symmetry $\mathrm{radsym}$ isCOP.radsym
copula symmetry
Skewness (Joe, 2014) $\eta(p; \psi)$ uvskew
bivariate skewness
Kullback-Leibler divergence $\mathrm{KL}(f|g)$ kullCOP
bivariate inference
K-L sample size $n_{f\!g}$ kullCOP
bivariate inference
General goodness-of-fit $T_n$ statTn
bivariate inference
Vuong's Procedure ${-}{-}$ vuongCOP
bivariate inference
L-comoments (samp. distr.) ${-}{-}$ lcomCOPpv
experimental bivariate inference
}
The following Table of Probabilities lists some important relations between various joint probability concepts, the copula, nonexceedance probabilities $u$ and $v$, and exceedance probabilities $u'$ and $v'$. A compact summary of these probability relations has obvious usefulness. The notation $[\cdots, \cdots]$ is the same as $[\cdots \mathrm{\ and\ } \cdots]$.
jointCOP
has considerable demonstration in its Note section of the joint and and or relations supported by simulation + counting scenarios. Also there is considerable demonstration in the Note section of function duCOP
on application of the concepts of joint and conditions, joint or conditions, and importantly joint mutually exclusive or conditions.
One or two copulas can be composite1COP
composites a single copula with two compositing parameters, function composite2COP
composites two copulas with two compositing parameters, and function composite3COP
composites two copulas with four compositing parameters. Two copulas can be combined through a weighted convex combination using convex2COP
with a single weighting parameter. Lastly, copula multiplication of two copulas to form a third is supported by prod2COP
.
composite1COP
copula combination
2 $\alpha, \beta$ composite2COP
copula combination
2 $\alpha, \beta, \kappa, \gamma$ composite3COP
copula combination
2 $\alpha$ convex2COP
copula combination
2 $\bigl(\mathbf{C}_1 \ast \mathbf{C}_2 \bigr)$ prod2COP
copula multiplication
}
All of the five functions for compositing, combining, or multipling copulas are compatible with joint probability simulation (simCOP
), measures of association (e.g. $\rho_\mathbf{C}$), and presumably all other copula operations using
A Review of
Risk analyses of natural hazards are commonly expressed as annual return periods $T$ in years, which are defined for a nonexceedance probability $q$ as $T = 1/(1-q)$. In bivariate analysis, there immediately emerge two types of return periods representing $T_{q;\,\mathrm{coop}}$ and $T_{q;\,\mathrm{dual}}$ conditions between nonexceedances of the two hazard sources (random variables) $U$ and $V$. It is usual in many applications for $T$ to be expressed equivalently as a probability $q$ in common for both variables.
Incidently, the $\mathrm{Pr}[\,U > u \mid V > v\,]$ and $\mathrm{Pr}[\,V > v \mid U > u\,]$ probabilities also are useful for conditional return period computations following Salvadori et al. (2007, p. 159--160) but are not further considered here. Also the $F_K(w)$ (Kendall's Function or Kendall's Measure of a copula) is the core tool for secondary return period computations (see kfuncCOP
).
Let the copula $\mathbf{C}(u,v; \Theta)$ for nonexceedances $u$ and $v$ be set for some copula family (formula) by a parameter vector $\Theta$. The copula family and parameters define the joint coupling (loosely meaning dependency/correlation) between hazards $U$ and $V$. If
$$T_{q;\,\mathrm{coop}} = \frac{1}{1 - \mathbf{C}(q, q; \Theta)} = \frac{1}{\mathbf{C}^\star(1-q, 1-q; \Theta)}\mbox{\ and}$$ $$T_{q;\,\mathrm{coop}} \equiv \frac{1}{\mathrm{cooperative\ risk}}\mbox{.}$$
However, if failure only occurs if and only if both hazards $U$ and $V$ occur simultaneously (that is
$$T_{q;\,\mathrm{dual}} = \frac{1}{1 - \tilde\mathbf{C}(q,q; \Theta)} = \frac{1}{\overline\mathbf{C}(q,q;\Theta)} = \frac{1}{\hat\mathbf{C}(q',q';\Theta)} \mbox{\ and}$$ $$T_{q;\,\mathrm{dual}} \equiv \frac{1}{\mathrm{complement\ of\ dual\ protection}}\mbox{.}$$
A numerical demonstration is informative. Salvadori et al. (2007, p. 151) show for a Gumbel-Hougaard copula (GHcop
) having $\Theta =$ 3.055 and $T =$ 1,000 years ($q = 0.999$) that $T_{q;\,\mathrm{coop}} = 797.1$ years and that $T_{q;\,\mathrm{dual}}$ = 1,341.4 years, which means that average return periods between failures are
$$T_{q;\,\mathrm{coop}} \le T \le T_{q;\,\mathrm{dual}}\mbox{.}$$
These values are readily computed and verified using the prob2T()
function from the COP
(generic functional interface to a copula) and duCOP
(dual of a copula):
q <- T2prob(1000)
lmomco::prob2T( COP(q,q, cop=GHcop, para=3.055)) # 797.110
lmomco::prob2T(duCOP(q,q, cop=GHcop, para=3.055)) # 1341.438
An early source (in 2005) by some of those authors cited on p.151 of Salvadori et al. (2007; their citation GHcop
) of $\tau \approx 0.673$, which can be verified through numerical integration available from tauCOP
as:
tauCOP(cop=GHcop, para=3.055, brute = TRUE) # 0.6726542
Thus, a
Useful Copula Relations by Visualization
There are a myriad of relations between variables computable through copulas, and these were listed in the Table of Probabilities earlier in this documentation. There is a script located in the inst/doc
directory of the CopulaRelations_BaseFigure_inR.txt
. This script demonstrates, using the PSP
copula, relations between the copula (COP
), survival copula (surCOP
), joint survival function of a copula (surfuncCOP
), co-copula (coCOP
), and dual of a copula function (duCOP
). The script performs simulation and manual counts observations meeting select criteria in order to compute their empirical probabilities. The script produces a
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.
Salvadori, G., De Michele, C., Kottegoda, N.T., and Rosso, R., 2007, Extremes in nature---An approach using copulas: Dordrecht, Netherlands, Springer, Water Science and Technology Library 56, 292 p.
# Nelsen (2006, p. 75, exer. 3.15b) provides for a nice test of copBasic features.
"mcdurv" <- function(u,v, theta) {
ifelse(u > theta & u < 1-theta & v > theta & v < 1 - theta,
return(M(u,v) - theta), # Upper bounds copula with a shift
return(W(u,v))) # Lower bounds copula
}
"MCDURV" <- function(u,v, para=NULL) {
if(is.null(para)) stop("need theta")
if(para < 0 | para > 0.5) stop("theta ! in [0,1/2]")
return(asCOP(u, v, f=mcdurv, para))
}
"afunc" <- function(t) { # a sample size = 1,000 hard wired
return(cov(simCOP(n=1000, cop=MCDURV, para=t, ploton=FALSE, points=FALSE))[1,2])
}
set.seed(6234)
print(uniroot(afunc, c(0,0.5))) # result by simulation = 0.1023742
# Nelsen reports that if theta appox. 0.103 then covariance of U and V is zero.
# So one will have mutually completely dependent uncorrelated uniform variables!
rhoCOP(cop=MCDURV, para=0.1023742) # Spearman Rho = 0.005854481 (near zero)
tauCOP(cop=MCDURV, para=0.1023742) # Kendall Tau = 0.2648521
wolfCOP(cop=MCDURV, para=0.1023742) # S & W Sigma = 0.4690174
D <- simCOP(n=1000, cop=MCDURV, para=0.1023742) # Plot mimics Nelsen (2006, fig. 3.11)
# Lastly, open research problem. L-comoments (matrices) measure high dimension of
# variable comovements (see lmomco package)---"method of L-comoments" for estimation?
lmomco::lcomoms2(simCOP(n=1000, cop=MCDURV, para=0), nmom=5) # Perfect neg. corr.
lmomco::lcomoms2(simCOP(n=1000, cop=MCDURV, para=0.1023742), nmom=5)
lmomco::lcomoms2(simCOP(n=1000, cop=MCDURV, para=0.5), nmom=5) # Perfect pos. corr.
# T2 (L-correlation), T3 (L-coskew), T4 (L-cokurtosis), and T5 matrices result. For
# Theta = 0 or 0.5 see the matrix symmetry with a sign change for L-coskew and T5 on
# the off diagonals (offdiags). See unities for T2. See near zero for offdiag terms
# in T2 near zero. But then see that T4 offdiags are quite different from those for
# Theta 0.1024 relative to 0 or 0.5. Thus, T4 has captured a unique property of U vs V.
Run the code above in your browser using DataLab