Skip to content

Copulas.jl follow-ups

The vine parity campaign exposed a few upstream questions worth testing independently in Copulas.jl. They are deliberately kept separate from VineCopulas-specific selection domains.

PriorityTopicReproducible condition
highGaussian :mledeterministic 20-point normal-score sample in test/vines/fitting.jl; direct copula MLE gives  
mediumgeneric transformed-space MLEweak Clayton/Gumbel interior optima on higher-tree pseudo-observations collapsed to the independence boundary in a custom bounded wrapper
lowArchimedean xtolkeyword is accepted by the one-parameter MLE; verify that it actually changes optimizer termination settings
stress testJoe/Gumbel boundary robustness  with  

Gaussian direct copula MLE

The cleanest standalone regression fixture is already in test/vines/fitting.jl under Gaussian vine selection maximizes copula likelihood. Its 20 normal-score pairs have sample Pearson correlation about 0.673483, while direct maximization of the Gaussian copula likelihood gives

Using the normal-score sample correlation gives a smaller copula log-likelihood, about 4.473895. This is the first upstream test to write: compare fit(GaussianCopula, U; method=:mle) with direct maximization of loglikelihood(GaussianCopula(2, ρ), U) over   .

The same issue changed a real vine family decision in the PARITY_N=300 correctness fixture at tree-4 edge (1,4 | 2:3:5): the normal-score route gave log-likelihood about 24.317022, while the direct/reference fit gave about 24.472079.

Generic transformed-space MLE near independence

This was observed in custom bounded wrappers, so it should not be reported as a native Clayton/Gumbel bug without a separate test. The exact vine pseudo-observation cases were:

EdgeFamilyBoundary estimateBounded/reference estimate
`(1,52:3)`Clayton 
`(1,52:3)`Gumbel 
`(3,42:5)`Clayton 
`(3,42:5)`Gumbel 

A useful upstream regression is a small custom one-parameter copula wrapper with a logistic bounded transform and a weak but clear interior likelihood optimum. The generic MLE should not silently settle at a transformed boundary.

Archimedean xtol

The specialized one-parameter Archimedean MLE accepts xtol. Verify that the value is passed to the optimizer's stopping criteria rather than only stored in returned metadata.

Joe/Gumbel boundary stress test

For native fits, simulate Joe and Gumbel samples near independence with   and  . The MLE should remain in the valid domain and should not fail because an optimizer trial crosses the constructor boundary.

What is not an upstream bug

The narrower Student-t, Clayton, Gumbel, Joe, and BB boxes used by automatic vine selection are compatibility choices. Copulas.jl can legitimately expose broader mathematical parameter domains; VineCopulas.jl narrows only the candidate space used by its automatic selector.