NORMcop: The Normal (Gaussian) Copula

NORMcopR Documentation

The Normal (Gaussian) Copula

Description

The Normal copula (Gaussian copula) (Salvadori et al., 2007, pp. 255–256) is

\mathbf{C}_{\Theta}(u,v) = \mathbf{NORM}(u,v; \Theta) = \int_{-\infty}^{\Phi^{(-1)}(u)}\!\!\!\!\int_{-\infty}^{\Phi^{(-1)}(v)}\!\!\!\!\!\!\!\! \frac{1}{2\pi\sqrt{1-\Theta^2}} \mathrm{exp}\biggl(-\frac{s^2 - 2\Theta s t + t^2}{ 2(1-\Theta^2) } \biggr)\,\mathrm{d}s\,\mathrm{d}t\mbox{,}

where \Theta \in [-1,1] and \Phi^{(-1)}(x) is the quantile function of the univariate normal distribution. The copula, as \Theta \rightarrow -1^{+}, limits to the countermonotonicity copula (\mathbf{W}(u,v); W), as \Theta \rightarrow 0 limits, to the independence coupla (\mathbf{P}(u,v); P), and as \Theta \rightarrow 1^{-}, limits to the comonotonicity copula (\mathbf{M}(u,v); M). The copula has lower-tail and upper-tail dependency parameters equal to zero, but such is not true for the closely related t-Student copula (Tcop). The Spearman Rho (rhoCOP) is \rho_\mathbf{C} = (6/\pi)\cdot\mathrm{asin}(\Theta/2) and Kendall Tau (tauCOP) is \tau_\mathbf{C} = (2/\pi)\cdot\mathrm{asin}(\Theta). The parameter \Theta is readily computed by \Theta = 2\cdot\mathrm{sin}(\pi\cdot\rho_\mathbf{C}/6) or by \Theta = \mathrm{sin}(\pi\cdot\tau_\mathbf{C}/2).

Usage

NORMcop(u, v, para=NULL, rho=NULL, tau=NULL, fit=c("rho", "tau"), ...)

Arguments

u

Nonexceedance probability u in the X direction;

v

Nonexceedance probability v in the Y direction;

para

A vector (single element) of parameters—the \Theta parameter of the copula;

rho

Optional Spearman Rho from which the parameter will be estimated and presence of rho trumps tau;

tau

Optional Kendall Tau from which the parameter will be estimated;

fit

If para, rho, and tau are all NULL, then the u and v represent the sample. The measure of association by the fit declaration will be computed and the parameter estimated subsequently. The fit has no other utility than to trigger which measure of association is computed internally by the cor function in R; and

...

Additional arguments to pass.

Value

Value(s) for the copula are returned. Otherwise if either rho or tau is given, then the \Theta is computed and a list having

para

The parameter \Theta;

rho

Spearman Rho if the rho is given; and

tau

Kendall Tau if the tau is given but also if both rho and tau are NULL as mentioned next.

and if para=NULL and rho and tau=NULL, then the values within u and v are used to compute Spearman Rho (fit="rho") or Kendall Tau (fit="tau") and then compute the parameter, and this is returned in the aforementioned list.

Note

A mimic of the wrappers on mvtnorm::pmvnorm() from the copula package (v1.1-6) are made within NORMcop. The rest of the implementation is unique to copBasic. An implementation of a function in the copBasic style that would natively interconnect to copula package version of the copula could be as follows:

  "NORMcop" <-         # pCoupla() from package copula is analogous to COP()
  function(u,v, para=NULL, ...) {
    if(length(u) == 1) u <- rep(u, length(v)) # see asCOP() for reasoning of
    if(length(v) == 1) v <- rep(v, length(u)) # this "vectorization" hack
    para <- copula::normalCopula(                 c(para), dim=2)
    return( copula::pCopula(matrix(c(u,v), ncol=2), para) )
  }

Author(s)

W.H. Asquith

References

Salvadori, G., De Michele, C., Kottegoda, N.T., and Rosso, R., 2007, Extremes in Nature—An approach using copulas: Springer, 289 p.

See Also

Tcop

Examples

## Not run: 
  para <- NORMcop(para=NULL, rho=0.9, taildep=0.3) # 0.907981
  UV <- simCOP(1000, cop=NORMcop, para=para$para)  # compare to similar Tcop example 
## End(Not run)

copBasic documentation built on July 23, 2026, 1:07 a.m.