JuliaCon 2023

Copulas.jl : A fully `Distributions.jl`-compliant copula package
07-27, 15:00–15:30 (US/Eastern), 32-124

The Copulas.jl package brings standard dependence modeling routines to native Julia. Copulas are distributions functions on the unit hypercube that are widely used (from theoretical probabilities and Bayesian statistics, to applied finance or actuarial sciences) to model the dependence structure of random vectors apart from their marginals. This native implementation leverages the Distributions.jl framework and is therefore conveniently directly compatible with the broader ecosystem.

Since half a century, the notion of Copulas, introduced by Sklar in 1959, is the standard approach to model complex dependence structures in multivariate random vectors. In a broad range of domains, multivariate statistics and dependence structure modeling is an important part of the statistical treatment of the information, and therefore many applied domains have widely adopted copulas frameworks.

In Julia, the probabilistic and statistical ecosystem is centered on Distributions.jl, which provides the standard tools to deal with random variables. Copulas.jl provides many standard tools to model dependencies between random variables: evaluation of probabilities and moments, Kendall's tau, Spearmann's rho, distribution function and density evaluation, fitting models to data through inverse moments or loglikelyhood maximization, etc, are available for a wide range of classical parametric copula families. Moreover, the Sklar type, mimicking Sklar's Theorem, allows building full models including the Copulas and marginal specifications. These complex multivariate models are compatible with the broader Distributions.jl ecosystem, allowing to, e.g., plug them directly into Turing.jl for Bayesian applications.

In this talk, we present the new tools that we developed, their integration to the ecosystem, and we showcase the new functionalities that are now available to the practitioner. The fact that this is native Julia allows beautiful application to weird number types that were not possible before, and we believe this package is a great addition to the Julia ecosystem.

I am currently a Post-Doctoral researcher at UCLouvain, in Belgium, under an FNRS grant. Actuary by formation, I focused during my PhD on high dimensional statistics and dependence structure estimations applied to internal modeling in a reinsurance context. I do have a taste for numerical code and open-source software, and most of my work is freely available on Github.

This speaker also appears in: