Skip to content

Minimal D-vine

This example builds the smallest non-trivial D-vine, evaluates its density, simulates data, and computes a Rosenblatt round-trip.

julia
using VineCopulas
using Distributions: logpdf, pdf
using Random

C12 = GaussianCopula([1.0 0.55; 0.55 1.0])
C23 = ClaytonCopula(2, 1.8)
C13_2 = FrankCopula(2, 2.5)

vine = DVineCopula([1, 2, 3], [[C12, C23], [C13_2]])
DVineCopula(p=3, trunc=2)
julia
u = [0.2, 0.6, 0.8]
(logpdf(vine, u), pdf(vine, u))
(-0.519913649417855, 0.5945718873821709)
julia
U = rand(MersenneTwister(123), vine, 1_000)
size(U)
(3, 1000)
julia
Z = rosenblatt(vine, U)
maximum(abs.(inverse_rosenblatt(vine, Z) .- U))
4.1300296516055823e-14