Skip to content

Archimax family {#Archimax_theory}

Archimax copulas form a hybrid family that combines an Archimedean generator ϕ with an extreme-value tail defined by its stable tail dependence function , or its associated Pickands function A(t)=(tt). They interpolate between purely Archimedean and purely EV structures and underpin families such as BB4 and BB5.

Tip: Bivariate only (for now)

This section and the current implementation address the bivariate case. Multivariate extensions are possible; if you’d like to contribute, we’re happy to provide guidance on how to integrate them.

An Archimax copula [55] C admits the representation

Cϕ,(u1,u2)=ϕ((ϕ1(u1),ϕ1(u2))),0u1,u21,

where ϕ:[0,)(0,1] is a given Archimedean generator (with inverse ϕ1), A:[0,1][1/2,1] is a Pickands dependence function, and

(x1,...xd)=(i=1dxi)A(xi(i=1dxi),i1,...,d),x1,..,xd0.

When d=2, we abuse the A notation by setting A(w)=A(w,1w).


Archimax in this package

This package provides the abstract type ArchimaxCopula. Because we expose a wide set of Archimedean generators and extreme-value copulas, many combinations are possible: any Archimedean copula can be paired with any extreme-value copula to produce a valid Archimax copula.

The API is minimal and generic:

With these conventions, the constructor ArchimaxCopula(d, gen, tail) produces the correct d-variate model, accross all possiibilities through all implemented (and obviously new user-defined) models.

You can define an archimax copula as follows:

julia
using Copulas, Distributions, Plots
C = ArchimaxCopula(2,
    Copulas.FrankGenerator(0.8),                   # Archimedean generator
    Copulas.AsymGalambosTail(0.35, 0.65, 0.3)    # Stable Tail Dependence
)
plot(C)


Advanced Concepts

Tip: Tail behaviour:

The upper tail is governed by the extreme value structure, while the lower tail is driven by the curvature of the Archimedean generator ϕ. For specific families (e.g., BB5Copula) there are closed forms for λU and for lower-tail orders.

Theorem: Exhaustivity and consistency

For bivariate Archimax copulas,

τϕ,A=τA+(1τA)τϕ,

where τA is Kendall’s τ of the EV copula with Pickands A, and τϕ is Kendall’s τ of the Archimedean copula with generator ϕ (Capéraà, Fougères & Genest, 2000).


Classical constructions

  • BB4: GalambosTail (EV) + ClaytonGenerator (only positive dependence suported yet) gamma LT (LT family includes Clayton as a special case).

  • BB5: GalambosTail (EV) + positive stable LT (LT family includes Gumbel as a limiting case).

Each has its own docstring and dedicated section in this documentation.

Simulation of Archimax Copulas

The implemented simulation scheme is the “frailty + EV” construction (e.g. [55] [51], which is valid only when the Archimedean generator ϕ is completely monotone, which means it is the Laplace transform of a non-negative random variable M called its frailty. If (V1,V2) follows the EV copula with stable tail dependence function , then

Uj=ϕ(logVj/M),j=1,2,

has the Archimax copula Cϕ,A.

::: algorithm Bivariate Archimax sampling

  • Simulate (V1,V2)CEV with stable tail function (i.e., Pickands A).

  • Simulate a frailty M0 whose Laplace transform is E[esM]=ϕ(s).

  • Set Uj:=ϕ(log(Vj)/M), j=1,2. Return (U1,U2).

:::

Todo: Allow any generator

According to [56], it should be possible to use any d-monotonous generator. If you want to implement the corresponding sampler, please reach out.

Notes on the objects used.

  • Frailty distribution. By Bernstein’s theorem, a completely monotone ϕ is a Laplace transform. The helper frailty(G::Generator) returns a distribution for M such that E(exp(-s*M)) = ϕ(gen, s) and returns an error if the generator is nt completely monotonous.

  • EV sampling. Step (1) uses the EV sampler already provided in this package (via ℓ(tail::Tail, x) and A(tail::Tail, x)), as documented in the EV section.

  • Generality. The recipe extends to d>2 by simulating (V1,,Vd) (But remember that it is not so simple to obtain it) from the EV copula of variable d and applying steps (2)–(3) by components.

Copulas.ArchimaxCopula Type
julia
ArchimaxCopula{d, TG, TT}

Fields

  • gen::TG Archimedean generator ϕ (implements ϕ, ϕ⁻¹, derivatives)

  • tail::TT Extreme-value tail (implements Pickands A / STDF )

Constructor

julia
ArchimaxCopula(d, gen::Generator, tail::Tail)

Definition (bivariate shown). Let xi=ϕ1(ui) and denote the STDF by . The cdf is

C(u1,u2)=ϕ((x1,x2)).

Reductions

  • If (x)=x1+x2 (i.e., tail = NoTail()), this is the Archimedean copula with generator gen.

  • If ϕ(s)=es (i.e., gen = IndependentGenerator()), this is the extreme-value copula with tail tail.

params(::ArchimaxCopula) concatenates the parameter tuples of gen and tail.

References:

  • [55] Capéraà, Fougères & Genest (2000), Bivariate Distributions with Given Extreme Value Attractor.

  • [56] Charpentier, Fougères & Genest (2014), Multivariate Archimax Copulas.

  • [51] Mai, J. F., & Scherer, M. (2012). Simulating copulas: stochastic models, sampling algorithms, and applications.

source

Conditionals and distortions

Let Cϕ,(u)=ϕ((ϕ1(u))) denote an Archimax copula (bivariate in our current implementation). For any copula, conditioning is given by partial-derivative ratios:

CIJ(uIuJ)=|J|uJC(uI,uJ)/|J|uJC(1I,uJ).

In the bivariate case (d=2) conditioning on U2=v, the univariate conditional distortion reads

H12(uv)=vCϕ,(u,v)/vCϕ,(1,v).

Using the chain rule and setting s1=ϕ1(u), s2=ϕ1(v), this becomes

H12(uv)=ϕ((s1,s2))2(s1,s2)(ϕ1)(v)ϕ((0,s2))2(0,s2)(ϕ1)(v)=ϕ((s1,s2))2(s1,s2)ϕ((0,s2))2(0,s2),

where the factor (ϕ1)(v) cancels. When comes from a Pickands function A (bivariate EV case), 2 is available in closed form. This is the expression used by the implementation for conditional distortions on the copula scale; higher-dimensional extensions follow the same principle with higher-order partial derivatives.

  1. H. Joe. Dependence Modeling with Copulas (CRC press, 2014).

  2. J.-F. Mai and M. Scherer. Simulating copulas: stochastic models, sampling algorithms, and applications. Vol. 4 (World Scientific, 2012).

  3. P. Capéraà, A.-L. Fougères and C. Genest. Bivariate distributions with given extreme value attractor. Journal of Multivariate Analysis 72, 30–49 (2000).

  4. A. Charpentier, A.-L. Fougères, C. Genest and J. Nešlehová. Multivariate archimax copulas. Journal of Multivariate Analysis 126, 118–136 (2014).

Build-your-own Archimax

Use any Archimedean generator G<:Generator and any extreme value tail E<:Tail:

julia
gen = ClaytonGenerator(7.0)   # any Archimedean generator
tail = GalambosTail(3.2)      # any extreme value tail
C = ArchimaxCopula(gen, tail) # bivariate Archimax copula
samples = rand(C,1000)        # sampling
cdf(C,samples)                # cdf
pdf(C,samples)                # pdf

Building blocks:

  • Archimedean generators → see [available Archimedean generators](@ref available_archimedean_models).

  • Extreme-value tails → see [available extreme-value tails](@ref available_extreme_models).

Parameter validity is handled by the underlying types; no extra checks are needed at the Archimax level.

Tip: Sampling

The provided sampler for Archimax uses the frailty representation: M ∼ frailty(gen) with Laplace transform ϕ, and EV draws V from tail. It returns U = ϕ.( -log.(V) ./ M ). This requires the generator to be completely monotone (so that a frailty distribution exists). If a generator is only 2-monotone, cdf/pdf work as usual, but rand may not be available.

Available models

Archimax copulas are built by pairing an Archimedean generator with an extreme value tail bahavior. Beyond the named families below, any Archimedean model in this package can be combined with any EV model via the generic constructor ArchimaxCopula(gen, tail).

Info: Bivariate only

The current implementation is only bivariate since we only have bivariate extreme value tails. If you’re interested in contributing a multivariate extensions, please reach out.

BB4Copula

Copulas.BB4Copula Type
julia
BB4Copula{T}

Fields: - θ::Real - dependence parameter (θ ≥ 0) - δ::Real - shape parameter (δ > 0)

Constructor

julia
BB4Copula(θ, δ)

The BB4 copula is a two-parameter Archimax copula constructed from the Galambos tail and the Clayton generator. Its distribution function is

C(u,v;θ,δ)=(uθ+vθ1[(uθ1)δ+(vθ1)δ]1/δ)1/θ,θ0,δ>0.

for 0u,v1.

Special cases:

  • As δ → 0+, reduces to the Clayton Copula (Archimedean).

  • As θ → 0+, reduces to the Galambos copula (extreme-value).

  • As θ → ∞ or δ → ∞, approaches the M Copula.

References:

  • [4] Joe, H. (2014). Dependence modeling with copulas. CRC press, Page.197-198
source

BB5Copula

Copulas.BB5Copula Type
julia
BB5Copula{T}

Fields: - θ::Real - dependence parameter (θ ≥ 1) - δ::Real - shape parameter (δ > 0)

Constructor

julia
BB5Copula(θ, δ)

The BB5 copula is a two-parameter Archimax copula, constructed from the Galambos tail and the Gumbel generator. Its distribution function is

C(u,v;θ,δ)=exp{[xθ+yθ(xθδ+yθδ)1/δ]1/θ},θ1,δ>0,

where x=log(u) and y=log(v).

Special cases:

  • As δ → 0⁺, reduces to the Gumbel copula (extreme-value and Archimedean).

  • As θ = 1, reduces to the Galambos copula.

  • As θ → ∞ or δ → ∞, converges to the M copula.

References:

  • [4] Joe, H. (2014). Dependence modeling with copulas. CRC press, Page.197-198
source

References

  1. H. Joe. Dependence Modeling with Copulas (CRC press, 2014).

  2. J.-F. Mai and M. Scherer. Simulating copulas: stochastic models, sampling algorithms, and applications. Vol. 4 (World Scientific, 2012).

  3. P. Capéraà, A.-L. Fougères and C. Genest. Bivariate distributions with given extreme value attractor. Journal of Multivariate Analysis 72, 30–49 (2000).

  4. A. Charpentier, A.-L. Fougères, C. Genest and J. Nešlehová. Multivariate archimax copulas. Journal of Multivariate Analysis 126, 118–136 (2014).