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

The independence copula is

Πd(u)=j=1duj.

It has no free parameter and is constructed with IndependentCopula(d) or IndependentCopula{d}().

MCopula

The upper Fréchet–Hoeffding bound, or comonotonic copula, is Md(u)=minjuj. It is parameter-free and singular, and is constructed with MCopula(d) or MCopula{d}().

WCopula

The lower Fréchet–Hoeffding bound is a copula only in dimension two: W(u,v)=max(u+v1,0). This countermonotonic, singular model is constructed with WCopula(), WCopula(2), or WCopula{2}().

Transformed Copulas

SurvivalCopula

If UC, the survival copula is the distribution of 1U (it is still a copula). It exchanges lower- and upper-tail behaviour without adding a continuous parameter. Construct it with SurvivalCopula(C).

For compatibility, SurvivalCopula(C, flips) also constructs the copula of a partially reflected vector: coordinate j is replaced by 1Uj exactly when j belongs to flips. The indices must be distinct and belong to 1:length(C). In new bivariate code, prefer the named rotation constructors below when the transformation is one of the three standard rotations.

When fitting a rotated model, pass the desired flip indices explicitly because they belong to the instance rather than its type:

julia
using Distributions
S = SurvivalCopula(ClaytonCopula(2, 2.0), (1,))
U = rand(S, 100)
= fit(typeof(S), U; flips=(1,))

Bivariate rotations

For a bivariate copula C, Copulas.jl follows the counter-clockwise rotation convention

C90(u,v)=vC(1u,v),C180(u,v)=u+v1+C(1u,1v),C270(u,v)=uC(u,1v).

Construct these models with Rotated90Copula(C), Rotated180Copula(C), and Rotated270Copula(C). They reflect respectively the first coordinate, both coordinates, and the second coordinate. Unlike a partial SurvivalCopula(C, flips), their reflection pattern belongs to the concrete type, so fit(typeof(R), U) preserves the requested rotation without a flips keyword.

Single-coordinate rotations reverse the sign of bivariate Kendall's tau and exchange one upper/lower corner with an opposite corner. A 180-degree rotation preserves Kendall's tau and is exactly the bivariate survival copula. Rotation does not imply that the resulting family is symmetric, and 90- and 270-degree rotations generally remain different models.

The qualified accessors Copulas.basecopula(R), Copulas.flipmask(R), and Copulas.flips(R) return respectively the original copula, the Boolean reflection mask, and the reflected coordinate indices. They apply both to the named rotations and to SurvivalCopula objects.

Others

PlackettCopula

The bivariate Plackett family is

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

with its continuous value uv at θ=1. The parameter satisfies θ0; zero and infinity give the lower and upper Fréchet–Hoeffding bounds. Use PlackettCopula(θ), PlackettCopula{2}(θ), or PlackettCopula(2, θ); see [ DocumenterCitations.CitationSiteNode("nelsen2006-cite-2")

].

FGMCopula

For every subset S{1,,d} with |S|2, let θS be an interaction parameter. The multivariate Farlie–Gumbel–Morgenstern copula is

C(u)=j=1duj[1+|S|2θSjS(1uj)].

The parameter vector therefore has length 2dd1. Each coefficient lies in [1,1] and the joint corner constraints ensuring a non-negative density must also hold. Construct the family with FGMCopula{d}(θ) or FGMCopula(d, θ); in dimension two, θ may be supplied as a scalar. The sampling representation follows [ DocumenterCitations.CitationSiteNode("blier2022stochastic-cite-1")

]. Even at the bivariate endpoints θ = ±1, these remain ordinary, weak-dependence FGM copulas rather than either Fréchet–Hoeffding bound.

RafteryCopula

Writing u(1)u(d) for the ordered coordinates, the Raftery family is

Cθ(u)=u(1)+(1θ)(1d)1θd(j=1duj)1/(1θ)i=2dθ(1θ)(1θi)(2θi)(j=1i1u(j))1/(1θ)u(i)(2θi)/(1θ).

Here 0θ1; the endpoints give independence and comonotonicity. Use RafteryCopula{d}(θ) or RafteryCopula(d, θ); the multivariate extension is described in [ DocumenterCitations.CitationSiteNode("Raftery2023-cite-1")

].

See the canonical Public API for detailed validation and limiting behavior of these constructors.

References

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

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

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