Skip to content

Archimax family

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.

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 [ DocumenterCitations.CitationSiteNode("caperaa2000-cite-1")

] 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 constructor combines supported components:

With these conventions, ArchimaxCopula(d, gen, tail) builds the corresponding copula whenever the two components support the requested dimension.

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

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. [ DocumenterCitations.CitationSiteNode("caperaa2000-cite-2")

] [ DocumenterCitations.CitationSiteNode("mai2012simulating-cite-1")

], 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).

The sampling recipe uses the supported generator and extreme-value components; its internal representations are not part of the public contract.

See the canonical Public API entry for ArchimaxCopula.

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. 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).

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

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,200)         # 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.

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).

Bivariate only

The current ArchimaxCopula implementation remains bivariate. The package now provides multivariate extreme-value tails, but extending the Archimax density, conditioning, and sampling machinery beyond dimension two is separate work.

BB4Copula

BB4 combines the Clayton generator with the Galambos stable tail dependence function. For 0u,v1,

Cθ,δ(u,v)=[uθ+vθ1{(uθ1)δ+(vθ1)δ}1/δ]1/θ.

Its parameters satisfy θ0 and δ>0. Construct it with BB4Copula(θ, δ), BB4Copula{2}(θ, δ), or BB4Copula(2, θ, δ). As δ0+ it reduces to Clayton; as θ0+ it reduces to Galambos.

BB5Copula

BB5 combines the Gumbel generator with the Galambos stable tail dependence function. With x=logu and y=logv,

Cθ,δ(u,v)=exp([xθ+yθ(xθδ+yθδ)1/δ]1/θ).

Its parameters satisfy θ1 and δ>0. Construct it with BB5Copula(θ, δ), BB5Copula{2}(θ, δ), or BB5Copula(2, θ, δ). The case θ=1 is Galambos, while δ0+ is Gumbel.

See the canonical Public API for complete limiting and validation behavior.

References

  1. 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).

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