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
IndependentCopula(d)The independent copula in dimension
It is Archimedean with generator
References:
- [3] Nelsen, Roger B. An introduction to copulas. Springer, 2006.
MCopula
Copulas.MCopula Type
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
Both Fréchet–Hoeffding bounds are Archimedean copulas.
References:
- [3] Nelsen, Roger B. An introduction to copulas. Springer, 2006.
WCopula
Copulas.WCopula Type
WCopulaThe lower Fréchet–Hoeffding bound is the copula with the smallest value among all copulas. Note that
Both Fréchet–Hoeffding bounds are Archimedean copulas.
References:
- [3] Nelsen, Roger B. An introduction to copulas. Springer, 2006.
Transformed Copulas
SurvivalCopula
Copulas.SurvivalCopula Type
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:
SurvivalCopula(ClaytonCopula(4, θ), (2,3))which is equivalent to the explicit type form:
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:
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
.
References:
- [3] Nelsen (2006), An introduction to copulas.
SubsetCopula
Copulas.subsetdims Function
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
SubsetCopulaor a newSklarDistobject corresponding to the selected dimensions. Ifp == 1, returns aUniformdistribution 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.
sourceCopulas.SubsetCopula Type
SubsetCopula{d,CT}Fields:
C::CT- The copuladims::Tuple{Int}- a Tuple representing which dimensions are used.
Constructor
SubsetCopula(C::Copula,dims)This class allows to construct a random vector corresponding to a few dimensions of the starting copula. If C, this returns the copula of ( for i in dims). The dependence structure is preserved. There are specialized methods for some copulas.
Others
PlackettCopula
Copulas.PlackettCopula Type
PlackettCopula{P}Fields: - θ::Real - parameter
Constructor
PlackettCopula(θ)The Plackett copula is parameterized by
and for
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.
FGMCopula
Farlie-Gumbel-Morgenstern (FGM) copula
Copulas.FGMCopula Type
FGMCopula{d,T}Fields:
- θ::Real - parameter
Constructor
FGMCopula(d, θ)The multivariate Farlie–Gumbel–Morgenstern (FGM) copula of dimension d has
where
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.
RafteryCopula
Copulas.RafteryCopula Type
RafteryCopula{d, P}Fields: - θ::Real - parameter
Constructor
RafteryCopula(d, θ)The multivariate Raftery copula of dimension d is parameterized by
where
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.
References
R. B. Nelsen. An Introduction to Copulas. 2nd ed Edition, Springer Series in Statistics (Springer, New York, 2006).
H. Joe. Dependence Modeling with Copulas (CRC press, 2014).
M. E. Johnson. Multivariate statistical simulation: A guide to selecting and generating continuous multivariate distributions. Vol. 192 (John Wiley & Sons, 1987).
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).
T. Saali, M. Mesfioui and A. Shabri. Multivariate extension of Raftery copula. Mathematics 11, 414 (2023).