Skip to content

VineCopulas.jlFlexible vine copula models for Julia

Build, fit, select, evaluate, and simulate C-vines, D-vines, and R-vines on top of Copulas.jl.

VineCopulas.jl

VineCopulas.jl ​

VineCopulas.jl is a native Julia package for building, fitting, selecting, evaluating, and simulating C-vine, D-vine, and regular-vine copula models on top of Copulas.jl.

The package follows the Distributions.jl/Copulas.jl ecosystem: explicit vine models are copulas, pair copulas come from Copulas.jl, and fitting is exposed through fit.

What is available ​

  • C-vine, D-vine, and general R-vine models.

  • pdf, logpdf, rand, numerical cdf, Rosenblatt, and inverse Rosenblatt transforms.

  • Pair-copula fitting with family and rotation selection.

  • Sequential fitting for fixed vine structures.

  • Automatic C-vine and D-vine ordering.

  • Dissmann-style R-vine structure selection with maximum spanning trees.

  • AIC, BIC, log-likelihood, Kendall-, and Spearman- controls.

  • Truncated vine evaluation and user-controlled fitting truncation.

  • External correctness checks against rvinecopulib and reproducible performance benchmarks.

Quick example ​

julia
using VineCopulas
using Distributions
using Random

rng = MersenneTwister(42)
truth = DVineCopula(
    [1, 2, 3],
    [[GaussianCopula(2, 0.55), ClaytonCopula(2, 1.4)],
     [FrankCopula(2, 2.0)]],
)

U = rand(rng, truth, 1_000)

fitted = fit(
    DVineCopula,
    U;
    family_set=:default,
    selection_criterion=:bic,
    allow_rotations=true,
)

loglikelihood(fitted, U)
maximum(abs.(inverse_rosenblatt(fitted, rosenblatt(fitted, U)) .- U))

Matrices are interpreted as p × n: rows are variables and columns are observations.

Documentation map ​

The site has six top-level sections:

  • Home — this overview, quick example, and citation.

  • Guide — installation, first models, simulation, examples, compatibility, and conventions.

  • Bestiary — supported vine structures and pair-copula families.

  • Fitting & Selection — pair fitting, vine fitting, structure selection, and parameter-domain controls.

  • Benchmarks — correctness and speed comparisons against rvinecopulib.

  • Developer — architecture, API, testing, upstream follow-ups, and the roadmap.

The version selector in the documentation provides the development site, the latest stable release, and retained tagged versions.

Citation ​

If you use VineCopulas.jl, please cite the package metadata in CITATION.cff:

bibtex
@software{jimenez_vinecopulas,
  author  = {Santiago Jimenez and contributors},
  title   = {VineCopulas.jl},
  url     = {https://github.com/Santymax98/VineCopulas.jl},
  version = {0.1.1},
  year    = {2026}
}