Archimax family {#Archimax_theory}
Archimax copulas form a hybrid family that combines an Archimedean generator
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]
where
When
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:
Provide an Archimedean generator
gen::Generatorwith methodsϕ(G, s)andϕ⁻¹(G, u). SeeGeneratorand available Archimedean generators.Provide an extreme-value tail
tail::Tailwith its Pickands functionA(tail, w)ro stable tail dependence functionℓ(tail, x). SeeExtremeValueCopulaand available extreme-value models.
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:
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
The upper tail is governed by the extreme value structure, while the lower tail is driven by the curvature of the Archimedean generator
For bivariate Archimax copulas,
where
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
has the Archimax copula
::: algorithm Bivariate Archimax sampling
Simulate
with stable tail function (i.e., Pickands ). Simulate a frailty
whose Laplace transform is . Set
, . Return .
:::
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 forsuch 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)andA(tail::Tail, x)), as documented in the EV section.Generality. The recipe extends to
by simulating (But remember that it is not so simple to obtain it) from the EV copula of variable and applying steps (2)–(3) by components.
Copulas.ArchimaxCopula Type
ArchimaxCopula{d, TG, TT}Fields
gen::TGArchimedean generator(implements ϕ,ϕ⁻¹, derivatives)tail::TTExtreme-value tail (implements PickandsA/ STDFℓ)
Constructor
ArchimaxCopula(d, gen::Generator, tail::Tail)Definition (bivariate shown). Let
Reductions
If
(i.e., tail = NoTail()), this is the Archimedean copula with generatorgen.If
(i.e., gen = IndependentGenerator()), this is the extreme-value copula with tailtail.
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.
Conditionals and distortions
Let
In the bivariate case (
Using the chain rule and setting
where the factor
H. Joe. Dependence Modeling with Copulas (CRC press, 2014).
J.-F. Mai and M. Scherer. Simulating copulas: stochastic models, sampling algorithms, and applications. Vol. 4 (World Scientific, 2012).
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).
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:
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) # pdfBuilding 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.
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).
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
BB4Copula{T}Fields: - θ::Real - dependence parameter (θ ≥ 0) - δ::Real - shape parameter (δ > 0)
Constructor
BB4Copula(θ, δ)The BB4 copula is a two-parameter Archimax copula constructed from the Galambos tail and the Clayton generator. Its distribution function is
for
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
BB5Copula
Copulas.BB5Copula Type
BB5Copula{T}Fields: - θ::Real - dependence parameter (θ ≥ 1) - δ::Real - shape parameter (δ > 0)
Constructor
BB5Copula(θ, δ)The BB5 copula is a two-parameter Archimax copula, constructed from the Galambos tail and the Gumbel generator. Its distribution function is
where
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
References
H. Joe. Dependence Modeling with Copulas (CRC press, 2014).
J.-F. Mai and M. Scherer. Simulating copulas: stochastic models, sampling algorithms, and applications. Vol. 4 (World Scientific, 2012).
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).
A. Charpentier, A.-L. Fougères, C. Genest and J. Nešlehová. Multivariate archimax copulas. Journal of Multivariate Analysis 126, 118–136 (2014).