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+v−1,0). This countermonotonic, singular model is constructed with WCopula(), WCopula(2), or WCopula{2}().

Transformed Copulas ​

SurvivalCopula ​

If U∼C, the survival copula is the distribution of 1−U (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 1−Uj 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)=v−C(1−u,v),C180(u,v)=u+v−1+C(1−u,1−v),C270(u,v)=u−C(u,1−v).

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)]2−4θ(θ−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 [].

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θS∏j∈S(1−uj)].

The parameter vector therefore has length 2d−d−1. 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 []. 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−θ)(1−d)1−θ−d(∏j=1duj)1/(1−θ)−∑i=2dθ(1−θ)(1−θ−i)(2−θ−i)(∏j=1i−1u(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 [].

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