GLcop: The Galambos Extreme Value Copula (with Gamma Power Mixture...

GLcopR Documentation

The Galambos Extreme Value Copula (with Gamma Power Mixture [Joe/BB4] and Lower Extreme Value Limit)

Description

The Galambos copula (Joe, 2014, p. 174) is

\mathbf{C}_{\Theta}(u,v) = \mathbf{GL}(u,v) = uv\,\mathrm{exp}\bigl[\bigl(x^{-\Theta} + y^{-\Theta}\bigr)^{-1/\Theta}\bigr]\mbox{,}

where \Theta \in [0, \infty), x = -\log u, and y = -\log v. As \Theta \rightarrow 0^{+}, the copula limits to independence (\mathbf{\Pi}; P) and as \Theta \rightarrow \infty, the copula limits to perfect association (\mathbf{M}; M). The copula here is a bivariate extreme value copula (BEV), and parameter estimation for \Theta requires numerical methods.

There are two other genetically related forms. Joe (2014, p. 197) describes an extension of the Galambos copula as a Galambos gamma power mixture (GLPM), which is Joe's BB4 copula, with the following form

\mathbf{C}_{\Theta,\delta}(u,v) = \mathbf{GLPM}(u,v) = \biggl(x + y - 1 - \bigl[(x - 1)^{-\delta} + (y - 1)^{-\delta} \bigr]^{-1/\delta} \biggr)^{-1/\Theta}\mbox{,}

where x = u^{-\Theta}, y = v^{-\Theta}, and \Theta \ge 0, \delta \ge 0. (Joe shows \delta > 0, but zero itself seems to work without numerical problems in practical application.) As \delta \rightarrow 0^{+}, the “MTCJ family” (Mardia–Takahasi–Cook–Johnson) results (implemented internally with \Theta as the incoming parameter). As \Theta \rightarrow 0^{+} the Galambos above results with \delta as the incoming parameter.

This second copula in turn has a lower extreme value limit form that leads to a min-stable bivariate exponential having Pickand dependence function of

A(x,y; \Theta, \delta) = x + y - \bigl[x^{-\Theta} + y^{-\Theta} - (x^{\Theta\delta} + y^{\Theta\delta})^{-1/\delta} \bigr]^{-1/\Theta}\mbox{,}

where this third copula is

\mathbf{C}^{LEV}_{\Theta,\delta}(u,v) = \mathbf{GLEV}(u,v) = \mathrm{exp}[-A(-\log u, -\log v; \Theta, \delta)]\mbox{,}

for \Theta \ge 0, \delta \ge 0 and is known as the two-parameter Galambos. (Joe shows \delta > 0, but \delta = 0 itself seems to work without numerical problems in practical application.)

Usage

GLcop(   u, v, para=NULL, ...)
GLEVcop( u, v, para=NULL, ...)
GLPMcop( u, v, para=NULL, ...) # inserts third parameter automatically
JOcopBB4(u, v, para=NULL, ...) # inserts third parameter automatically

Arguments

u

Nonexceedance probability u in the X direction;

v

Nonexceedance probability v in the Y direction;

para

To trigger \mathbf{GL}(u,v), a vector (single element) of \Theta, to trigger \mathbf{GLEV}(u,v), a two element vector of \Theta and \delta and alias is GLEVcop, and to trigger \mathbf{GLPM}(u,v), a three element vector of \Theta, \delta, and any number (the presence of the third entry alone is the triggering mechanism) though aliases GLPM or JOcopBB4 will insert the third parameter automatically for convenience; and

...

Additional arguments to pass.

Value

Value(s) for the copula are returned.

Note

Joe (2014, p. 198) shows \mathbf{GLEV}(u,v; \Theta, \delta) as a two-parameter Galambos, but its use within the text seemingly is not otherwise obvious. However, testing of the implementation here seems to show that this copula is really not broader in form than \mathbf{GL}(u,v; \alpha). The \alpha can always(?) be chosen to mimic the \{\Theta, \delta\}. This assertion can be tested from a semi-independent direction. First, define an alternative style of one-parameter Galambos:

  GL1cop <- function(u,v, para=NULL, ...) {
     GL1pA <- function(x,y,t) { # Pickend dependence func form 1p Galambos
        x + y - (x^-t + y^-t)^(-1/t)
     }
     if(length(u) == 1) { u <- rep(u, length(v)) } else
     if(length(v) == 1) { v <- rep(v, length(u)) }
     exp(-GL1pA(-log(u), -log(v), para[1]))
  }

Second, redefine the two-parameter Galambos:

  GL2cop <- function(u,v, para=NULL, ...) {
     GL2pA <- function(x,y,t,d) { # Pickend dependence func form 2p Galambos
        x + y - (x^-t + y^-t - (x^(t*d) + y^(t*d))^(-1/d))^(-1/t)
     }
     if(length(u) == 1) { u <- rep(u, length(v)) } else
     if(length(v) == 1) { v <- rep(v, length(u)) }
     exp(-GL2pA(-log(u), -log(v), para[1], para[2]))
  }

Next, we can combine the Pickend dependence functions into an objective function. This objective function will permit the computation of the \alpha given a pair \{\Theta, \delta\}.

  objfunc <- function(a,t=NA,d=NA, x=0.7, y=0.7) {
     lhs <- (x^-t + y^-t - (x^(t*d) + y^(t*d))^(-1/d))^(-1/t)
     rhs <- (x^-a + y^-a)^(-1/a); return(rhs - lhs) # to be uniroot'ed
  }

A demonstration can now be made:

  t <- 0.6; d <- 4; lohi <- c(0,100)
  set.seed(3); UV <- simCOP(3000, cop=GL2cop, para=c(t,d), pch=16,col=3,cex=0.5)
  a <- uniroot(objfunc, interval=lohi, t=t, d=d)$root
  set.seed(3); UV <- simCOP(3000, cop=GL1cop, para=a, lwd=0.5, ploton=FALSE)

The graphic so produced shows almost perfect overlap in the simulated values. To date, the author has not really found that the two parameters can be chosen such that the one-parameter version can not attain. Extensive numerical experiments using simulated parameter combinations through the use of various copula metrics (tail dependencies, L-comoments, etc) have not found material differences. Has the author of this package missed something?

Author(s)

W.H. Asquith

References

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

See Also

M, P, GHcop, HRcop, tEVcop

Examples

# Theta = pi for GLcop and recovery through Blomqvist Beta     (Joe, 2014, p. 175)
log(2)/(log(log(2)/log(1+blomCOP(cop=GLcop, para=pi))))

# Theta = 2 and delta = 3 for the GLPM form and Blomqvist Beta (Joe, 2014, p. 197)
t <- 2; Btheo <- blomCOP(GLPMcop, para=c(t,3))
Bform <- (2^(t+1) - 1 - taildepCOP(GLPMcop, para=c(t,3))$lambdaU*(2^t -1))^(-1/t)
print(c(Btheo, 4*Bform-1)) # [1] 0.8611903 0.8611900

## Not run: 
  # See the Note section but check Blomqvist Beta here:
  blomCOP(cop=GLcop, para=c(6.043619))  # 0.8552863 (2p version)
  blomCOP(cop=GLcop, para=c(5.6, 0.3))  # 0.8552863 (1p version) 
## End(Not run)

wasquith/copBasic documentation built on March 10, 2024, 11:24 a.m.