I am happy to annouce here that version 0.1.17 is out!
The package has seen a lot of (non-breaking) changes:
The documentation has largely improved, including some examples of uses with Turing, some SklarDist examples, etc…
Several functionalities were added to Archimedean copulas, including the (never-implemented-before-in-OSS) general WilliamsonCopula, that uses the Williamson d-transform to sample from every archimedean. The package is now able to sample from every archimedean copulas.
PlackettCopula, FGMCopula, GumbelBarnettCopula, InvGaussianCopula, added by courtesy of Santymax98, with top-of-the-line algorithms.
When needed matrix sampler are provided (faster sampling).
A lot of bug were fixed and a lot of tests were added.
Check out the rest on Copulas.jl’s github, and do not hesitate to open an issue if you want to discuss
Thanks for the nice message, this is appreciated If you use it do not hesitate to star the package on our github page this is always warming for us
Welcome to discourse BTW !
Concerning nested archimedean copulas, this should come quite soon, we completely refactored the internals of archimedean generators to allow greater generality and simplify future extensions : Liouville copulas (there is already a PR) and of course hierarchical models, archimedeans and liouville. This will allow an unprecetended generality of the architecture, since you will be able to input and nest your own generators without any issue (while in R only clayton and gumbel are availiable… and no nesting of diffrent families…).
If you meant Vines copulas, then this is a bit harder to do but it is also in our plans, maybe longer-term… If you want to do it or propose an implementation plan, do not hesitate !
Nice! I’m excited to start using it as soon as available!
My requirement is for partially-nested archimedean copulas (2 layers, many dimensions on the second layer), both fitting data to extract the parameters and later generating random numbers (not that I might be any technical at all, but I’ve read the dissertation from Jan Hofert (Sampling Nested Archimedean Copulas
with Applications to CDO Pricing) and it seems he got to a much faster and still reliable algorithm for generating nested-copula random numbers, which seems to be implemented in the R copula package, so it felt amazing to have this in plain Julia).
The generation part seems to be achievable with the DatagenCopulaBased.jl, at least for what I require.
Thanks for the answer and hope to start using Copulas.jl soon!
Yes DatagenCopulaBased might have you covered for the generation part of these models, if you only require “standard” families of generators like clayton or gumbel, I totally forget about it you are right. Edit: In fact what they have is chains of archimedeans, which is not the same at all. For Nested Archimedeans you are for the moment out of luck, I’m sorry…
Super cool package. I have gone through your roadmap, and I note you have stated you may implement vines. That is a relatively big undertaking, but it’d be amazing!
Yep, It’s the plan. The goal is to do a full native Julia re-implementation and not only to wrap the (amazing) C++ vinecopulib from Nagler & al. More precisely:
The methods needed for each bivariate copula are already there
A bit of machinery is still needed to construct a vine, and sample from it.
Dißmann’s algorithm needs to be implemented to fit a vine.
The upside of a full Julia implementation is type agnosticism and cooperation with the broader ecosystem of course
But this is a lot of work, if you want to undertake it you can
Fantastic, I might lend you a hand if I get the chance to. I am hoping one of my grant applications get funded, let’s see! I am very interested in graphical models for multivariate EVT.