Skip to content

Other Copulas

Some copulas, while necessary in certain cases and very useful, are hard to classify. We gather them here for simplicity.

Independence and Fréchet-Hoeffding bounds

IndependentCopula

Copulas.IndependentCopula Type
julia
IndependentCopula(d)

The independent copula in dimension d has distribution function

C(x)=i=1dxi.

It is Archimedean with generator ψ(s)=es.

References:

  • [3] Nelsen, Roger B. An introduction to copulas. Springer, 2006.
source

MCopula

Copulas.MCopula Type
julia
MCopula(d)

The upper Fréchet–Hoeffding bound is the copula with the largest value among all copulas; it corresponds to comonotone random vectors. For any copula C and all u[0,1]d,

W(u)C(u)M(u).

Both Fréchet–Hoeffding bounds are Archimedean copulas.

References:

  • [3] Nelsen, Roger B. An introduction to copulas. Springer, 2006.
source

WCopula

Copulas.WCopula Type
julia
WCopula

The lower Fréchet–Hoeffding bound is the copula with the smallest value among all copulas. Note that W is a proper copula only when d=2; for d>2 it remains the pointwise lower bound but is not itself a copula. For any copula C and all u[0,1]d,

W(u)C(u)M(u).

Both Fréchet–Hoeffding bounds are Archimedean copulas.

References:

  • [3] Nelsen, Roger B. An introduction to copulas. Springer, 2006.
source

Transformed Copulas

SurvivalCopula

Copulas.SurvivalCopula Type
julia
SurvivalCopula(C, flips)
SurvivalCopula{d,CT,flips}

Construct the survival (flipped) version of a copula by flipping the arguments at the given indices.

Type-level encoding: The indices to flip are encoded at the type level as a tuple of integers, e.g. SurvivalCopula{4,ClaytonCopula,(2,3)}. This enables compile-time specialization and dispatch, and ensures that the flipping pattern is part of the type.

Sugar constructor: The ergonomic constructor SurvivalCopula(C, flips::Tuple) infers the type parameters from the arguments, so you can write:

julia
SurvivalCopula(ClaytonCopula(4, θ), (2,3))

which is equivalent to the explicit type form:

julia
SurvivalCopula{4,ClaytonCopula,(2,3)}(ClaytonCopula(4, θ))

For a copula C in dimension d and indices i₁, ..., iₖ ∈ 1:d, the survival copula flips the corresponding arguments:

S(u1,,ud)=C(v1,,vd),vj={1ujjflipsujotherwise

Notes:

  • In the bivariate case, this includes the usual 90/180/270-degree "rotations" of a copula family.

  • The resulting object is handled like the base copula: same API (cdf, pdf/logpdf, rand, fit) and uniform marginals in [0,1]d.

References:

  • [3] Nelsen (2006), An introduction to copulas.
source

SubsetCopula

Copulas.subsetdims Function
julia
subsetdims(C::Copula, dims::NTuple{p, Int})
subsetdims(D::SklarDist, dims)

Return a new copula or Sklar distribution corresponding to the subset of dimensions specified by dims.

Arguments

  • C::Copula: The original copula object.

  • D::SklarDist: The original Sklar distribution.

  • dims::NTuple{p, Int}: Tuple of indices representing the dimensions to keep.

Returns

  • A SubsetCopula or a new SklarDist object corresponding to the selected dimensions. If p == 1, returns a Uniform distribution or the corresponding marginal.

Details

This function extracts the dependence structure among the specified dimensions from the original copula or Sklar distribution. Specialized methods exist for some copula types to ensure efficiency and correctness.

source
Copulas.SubsetCopula Type
julia
SubsetCopula{d,CT}

Fields:

  • C::CT - The copula

  • dims::Tuple{Int} - a Tuple representing which dimensions are used.

Constructor

julia
SubsetCopula(C::Copula,dims)

This class allows to construct a random vector corresponding to a few dimensions of the starting copula. If (X1,...,Xn) is the random vector corresponding to the copula C, this returns the copula of ( Xi for i in dims). The dependence structure is preserved. There are specialized methods for some copulas.

source

Others

PlackettCopula

Copulas.PlackettCopula Type
julia
PlackettCopula{P}

Fields: - θ::Real - parameter

Constructor

julia
PlackettCopula(θ)

The Plackett copula is parameterized by θ>0 and is defined by

Cθ(u,v)=[1+(θ1)(u+v)][1+(θ1)(u+v)]24uvθ(θ1)2(θ1)

and for θ=1 we have C1(u,v)=uv.

Special cases:

  • θ = 0: MCopula (upper Fréchet–Hoeffding bound)

  • θ = 1: IndependentCopula

  • θ = ∞: WCopula (lower Fréchet–Hoeffding bound)

References:

  • [4] Joe, H. (2014). Dependence modeling with copulas. CRC press, Page.164

  • [72] Johnson, Mark E. Multivariate statistical simulation: A guide to selecting and generating continuous multivariate distributions. Vol. 192. John Wiley & Sons, 1987. Page 193.

  • [3] Nelsen, Roger B. An introduction to copulas. Springer, 2006. Exercise 3.38.

source

FGMCopula

Farlie-Gumbel-Morgenstern (FGM) copula

Copulas.FGMCopula Type
julia
FGMCopula{d,T}

Fields:

  • θ::Real - parameter

Constructor

julia
FGMCopula(d, θ)

The multivariate Farlie–Gumbel–Morgenstern (FGM) copula of dimension d has 2dd1 parameters θ and

C(u)=i=1dui[1+k=2d1j1<<jkdθj1jku¯j1u¯jk],

where u¯=1u.

Special cases:

  • When d=2 and θ = 0, it is the IndependentCopula.

More details about Farlie-Gumbel-Morgenstern (FGM) copula are found in [3]. We use the stochastic representation from [73] to obtain random samples.

References:

  • [3] Nelsen, Roger B. An introduction to copulas. Springer, 2006.

  • [73] Blier-Wong, C., Cossette, H., & Marceau, E. (2022). Stochastic representation of FGM copulas using multivariate Bernoulli random variables. Computational Statistics & Data Analysis, 173, 107506.

source

RafteryCopula

Copulas.RafteryCopula Type
julia
RafteryCopula{d, P}

Fields: - θ::Real - parameter

Constructor

julia
RafteryCopula(d, θ)

The multivariate Raftery copula of dimension d is parameterized by θ[0,1].

Cθ(u)=u(1)+(1θ)(1d)1θd(j=1duj)11θi=2dθ(1θ)(1θi)(2θi)(j=1i1u(j))11θu(i)2θi1θ

where u(1),,u(d) denote the order statistics of u1,,ud. More details about Multivariate Raftery Copula are found in the references below.

Special cases:

  • When θ = 0, it is the IndependentCopula.

  • When θ = 1, it is the the Fréchet upper bound

References:

  • [74] Saali, T., M. Mesfioui, and A. Shabri, 2023: Multivariate Extension of Raftery Copula. Mathematics, 11, 414, https://doi.org/10.3390/math11020414.

  • [3] Nelsen, Roger B. An introduction to copulas. Springer, 2006. Exercise 3.6.

source

References

  1. R. B. Nelsen. An Introduction to Copulas. 2nd ed Edition, Springer Series in Statistics (Springer, New York, 2006).

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

  3. M. E. Johnson. Multivariate statistical simulation: A guide to selecting and generating continuous multivariate distributions. Vol. 192 (John Wiley & Sons, 1987).

  4. C. Blier-Wong, H. Cossette and E. Marceau. Stochastic representation of FGM copulas using multivariate Bernoulli random variables. Computational Statistics & Data Analysis 173, 107506 (2022).

  5. T. Saali, M. Mesfioui and A. Shabri. Multivariate extension of Raftery copula. Mathematics 11, 414 (2023).