copBasic (version 2.1.5)

JOcopB5: The Joe/B5 Copula (B5)

Description

The Joe/B5 copula (Joe, 2014, p. 170) is $$\mathbf{C}_{\Theta}(u,v) = \mathbf{B5}(u,v) = 1 - \bigl[(1-u)^\Theta + (1-v)^\Theta - (1-u)^\Theta (1-v)^\Theta\bigr)\mbox{,}$$ where \(\Theta \in [1,\infty)\). The copula as \(\Theta \rightarrow \infty\) limits to the comonotonicity coupla (\(\mathbf{M}(u,v)\) and M), as \(\Theta \rightarrow 1^{+}\) limits to independence copula (\(\mathbf{\Pi}(u,v)\); P). Finally, the parameter \(\Theta\) is readily computed from a Kendall Tau (tauCOP) by $$\tau_\mathbf{C} = 1 + \frac{2}{2-\Theta}\bigl(\psi(2) - \psi(1 + 2/\Theta)\bigr)\mbox{,}$$ where \(\psi\) is the digamma() function and as \(\Theta \rightarrow 2\) then $$\tau_\mathbf{C}(\Theta \rightarrow 2) = 1 - \psi'(2)$$ where \(\psi'\) is the trigamma() function.

Usage

JOcopB5(u, v, para=NULL, tau=NULL, ...)

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;

tau

Optional Kendall Tau; and

...

Additional arguments to pass.

Value

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

para

The parameter \(\Theta\), and

tau

Kendall tau.

and if para=NULL and tau=NULL, then the values within u and v are used to compute Kendall Tau and then compute the parameter, and these are returned in the aforementioned list.

References

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

See Also

M, P

Examples

Run this code
# NOT RUN {
# Upper tail dependency of Theta = pi --> 2 - 2^(1/pi) = 0.753131 (Joe, 2014, p. 171).
taildepCOP(cop=JOcopB5, para=pi)$lambdaU # 0.75313

# Blomqvist Beta of Theta = pi (Joe, 2014, p. 171).
blomCOP(cop=JOcopB5, para=pi)        # 0.5521328
3 - 4*(2*(1/2)^pi - (1/4)^pi)^(1/pi) # 0.5521328

# }
# NOT RUN {
# A test near the limiting Theta for trigamma()
UV <- simCOP(cop=JOcopB5, para=2, n=10000)
para <- JOcopB5(UV[,1], UV[,2])$para
message("Tau difference ", round(2-para, digits=2), " is small.") #
# }

Run the code above in your browser using DataLab