Skip to content

Extreme-value vine

Extreme-value pair-copulas can be used as vine edges when their conditional primitives are available.

julia
using VineCopulas
using Copulas
using Distributions: logpdf
using Random

C12 = Copulas.ExtremeValueCopula(2, Copulas.GalambosTail(1.5))
C23 = Copulas.ExtremeValueCopula(2, Copulas.HuslerReissTail(1.2))
C13_2 = GaussianCopula([1.0 0.3; 0.3 1.0])

dv = DVineCopula([1, 2, 3], [[C12, C23], [C13_2]])
U = rand(MersenneTwister(2026), dv, 500)
logpdf(dv, U[:, 1])
1.096245270512366
julia
Z = rosenblatt(dv, U)
maximum(abs.(inverse_rosenblatt(dv, Z) .- U))
1.3322676295501878e-14