gEVcop: The Gaussian-based (Extreme Value) Copula

gEVcopR Documentation

The Gaussian-based (Extreme Value) Copula

Description

The g-EV copula (Joe, 2014, p. 105) is a limiting form of the Normal (Gaussian) copula (NORMcop):

\mathbf{C}_{\rho}(u,v) = \mathbf{gEV}(u,v; \rho) = \mathrm{exp}\bigl(-A(x,y; \rho)\bigr)\mbox{,}

where x = -\log(u), y = -\log(v), and

A(x,y; \rho) = y\mbox{,}

for 0 \le x/(x+y) \le \rho^2/(1+\rho^2),

A(x,y; \rho) = (x+y - 2\rho\sqrt{xy})/(1-\rho^2)\mbox{,}

for \rho^2/(1+\rho^2) \le x/(x+y) \le 1/(1+\rho^2),

A(x,y; \rho) = x\mbox{,}

for 1/(1+\rho^2) \le x/(x+y) \le 1 and where \rho \in [0,1]. A somewhat curious observation is that this copula has relative hard boundaries into the upper-left and lower-right corners when compared to the other copulas supported by the copBasic package. In other words, the hull defined by the copula has a near hard (not fuzzy) curvilinear boundaries that adjust with the parameter \rho. The lower-case g in the copula name is deliberately to avoid the sequence GEV as to never be confused with the generalized extreme value distribution.

Usage

gEVcop(u, v, para=NULL, ...)

Arguments

u

Nonexceedance probability u in the X direction;

v

Nonexceedance probability v in the Y direction;

para

The parameter \rho; and

...

Additional arguments to pass.

Value

Value(s) for the copula are returned.

Author(s)

W.H. Asquith

References

Joe, H., 2014, Dependence modeling with copulas: Boca Raton, CRC Press, 462 p.

See Also

tEVcop, NORMcop

Examples

## Not run: 
  UV <- simCOP(200, cop=gEVcop, para=0.8) #
## End(Not run)

## Not run: 
  # Joe (2014, p. 105) has brief detail indicating rho = [0,1] and though it seems
  # Rho would be a Pearson correlation, this does not seem to be the case. The Rho
  # seems to start with that of the Gaussian and then through the extreme-value
  # transform, it just assumes the role of a parameter called Rho.
  rho <- 0.8
  UV <- simCOP(2000, cop=gEVcop, para=rho)
  P <- cor(UV[,1], UV[,2], method="pearson")
  if(abs(P - rho) < 0.001) {
    print("Yes same")
  } else { print("nope not") } # 
## End(Not run)

## Not run: 
  gEVparameter <- seq(0.02, 1, by=0.02)
  SpearmanRho <- sapply(gEVparameter, function(k) rhoCOP(cop=gEVcop, para=k))
  plot(gEVparameter, SpearmanRho)

  for(rho in gEVparameter) {
    UV <- simCOP(n=1000, cop=gEVcop, para=rho)
    mtext(paste0("Parameter = ", rho))
  } # 
## End(Not run)

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