Recent Releases of pyvinecopulib
pyvinecopulib - pyvinecopulib v0.7.1
Bug fixes in pyvinecopulib
- Upgrade nanobind to allow for single row matrices (fix #169 and #170)
New features in pyvinecopulib
- Add pickle support for all classes (#168)
- Add
allow_rotationoption toFitControlsBicopandFitControlsVinecop(#168)
Changes in vinecopulib version 0.7.1
These changes originate from the latest release of vinecopulib, the C++ library which powers pyvinecopulib.
NEW FEATURES
- add
allow_rotationoption toFitControlsBicopandFitControlsVinecopto allow for the rotation of the pair copulas (#628). - add a
FitControlsConfigstruct to create flexible and yet safe constructors forFitControlsBicopandFitControlsVinecop(#629).
BUG FIXES
- restrict parameter range for fitting Tawn copulas; fix handling of their shape/argument order (#620).
- compute and save loglik/nobs in
Vinecop::fit()(#623) - disable unwanted compiler output related to BOOST_CONCEPT checks (#624)
- C++
Published by tvatter about 1 year ago
pyvinecopulib - pyvinecopulib v0.7.0
This version introduces a switch to nanobind as a backend (#160): i.e., the C++ bindings, now use nanobind instead of pybind11. It allows for considerable performance improvements (~8x speedup in our latest benchmarks) and smaller binaries.
Breaking API changes in pyvinecopulib
- Removal of the overloaded constructors:
- For all classes, only one constructor is now available.
The reason is that the overloaded constructors were un-Pythonic, error-prone, and could not be properly documented with Sphinx.
They have been replaced by a single constructor for each class, along with factory
from_xzymethods. - For the
Bicopclass:Bicop.from_family(): Instantiate from a family, rotation, parameters, and variable types.Bicop.from_data(): Instantiate from data, as well as optional controls and variable types.Bicop.from_file(): Instantiate from a file.Bicop.from_json(): Instantiate from a JSON-like string.
- For the
Vinecopclass:Vinecop.from_dimension(): Instantiate an empty vine copula of a given dimension.Vinecop.from_data(): Instantiate from data, as well as an optionalFitControlsVinecop, anRVineStructureor matrix, and variable types.Vinecop.from_structure(): Instantiate from anRVineStructureor matrix, as well as optional pair-copulas and variable types.Vinecop.from_file(): Instantiate from a file.Vinecop.from_json(): Instantiate from a JSON-like string.
- For the
RVineStructureclass:RVineStructure.from_dimension(): Instantiate a default structure of a given dimension and truncation level.RVineStructure.from_order(): Instantiate from an order vector.RVineStructure.from_matrix(): Instantiate from a matrix.RVineStructure.from_file(): Instantiate from a file.RVineStructure.from_json(): Instantiate from a JSON-like string.
- For all classes, only one constructor is now available.
The reason is that the overloaded constructors were un-Pythonic, error-prone, and could not be properly documented with Sphinx.
They have been replaced by a single constructor for each class, along with factory
New features in pyvinecopulib
- Expose more structure methods to python (#157)
- Switch to nanobind as a backend (#160)
- New IO methods for
BicopandVinecopclasses to use JSON-like strings (#160) - Extensive documentation revamp (#160)
- Adding a benchmark example (#160)
- Convertion of all examples to Jupyter notebooks (#160)
Bug fixes in pyvinecopulib
- Install and test source distribution (#164)
Changes in vinecopulib
These changes originate from the underlying C++ library, vinecopulib, which powers pyvinecopulib.
New features
- Use analytical derivatives in discrete pdf/hfuncs (#572)
- Allow for alternative for
"prim"vs"kruskal"in MST-based model selection (#577) - Improve the dependencies install script to use it in other projects (#576)
- Add tawn copula (#579)
- Improve doc (#580, #585, #607)
- Allow for the discrete Rosenblatt transform (#581)
- Add
Vinecop::fit()(#584) - Improve
Bicop::str()(#588) andVinecop::str()(#589) - Properly handle discrete variables for the TLL family (#597)
- Weighted pseudo-observations (#602)
- Cross-platform random numbers and add seeds options to
to_pseudo_obs(#603) - Improve performance by
- aligning with the
Rdefaults (e.g.,BOOST_NO_AUTO_PTR,BOOST_ALLOW_DEPRECATED_HEADERS,BOOST_MATH_PROMOTE_DOUBLE_POLICY=false,std::string nonparametric_method = "constant"for the TLL instead of"quadratic",-O3 -march=nativecompiler flags) and add benchmarking example (#592, #611, #613), - using
Eigenelement-wise operations instead ofboostwhenever possible (#598, #612), - using binary search in the TLL for
get_indices(#613).
- aligning with the
Bug fixes
- Improve stability in BB7 PDF (#573)
- Revamped CI/CD pipeline, tests discoverable by CTest, boost version on windows ((66cf8b0))
- Fix ASAN issues (#583)
- Fix interface includes and other CMake issue (#586, #599, #601, #608), by @jschueller
- C++
Published by tvatter about 1 year ago
pyvinecopulib - pyvinecopulib v0.6.8
Vectorize the stats functions properly (https://github.com/vinecopulib/pyvinecopulib/pull/151)
New Vinecop.str() (https://github.com/vinecopulib/pyvinecopulib/pull/153)
Add variables names option for vinecop plots (https://github.com/vinecopulib/pyvinecopulib/pull/152)
- C++
Published by tvatter over 1 year ago
pyvinecopulib - pyvinecopulib 0.6.7
- Improved documentation (#144, #146)
- Plot functions for bivariate and vine copulas (#143)
- Discrete examples (#140)
- Fit method for vines
- Discrete Rosenblatt transform
- Tawn copulas
- Improvements to MST-based edge selection
- Better stability in BB7 pdf
- Analytical derivatives in discrete pdf/hfuncs
- C++
Published by tvatter over 1 year ago
pyvinecopulib - pyvinecopulib 0.6.4
- Modernize the package build (e.g., switch to pyproject.toml)
- Add latest versions of Python (3.11 and 3.12)
- C++
Published by tvatter over 2 years ago
pyvinecopulib - pyvinecopulib 0.6.3
Release following the updates of vinecopulib to 0.6.2, see https://github.com/vinecopulib/vinecopulib/releases. The most relevant changes are summarized below.
BUG FIXES
replace bitwise ops on boolean operands (#563)
handle
NaNs into_pseudo_obs()(#566)Replace calls to
sprintfin boost libraries (#565)
- C++
Published by tnagler about 3 years ago
pyvinecopulib - pyvinecopulib 0.6.2
Release following the updates of vinecopulib to 0.6.2, see https://github.com/vinecopulib/vinecopulib/releases. The most relevant changes are summarized below.
improved documentation (discrete and missing dat, Rosenblatt transforms)
better parallelization when there is a small number of edges (#555)
- C++
Published by tnagler over 3 years ago
pyvinecopulib - pyvinecopulib v0.6.0
Release following the update of vinecopulib to 0.6.0, see https://github.com/vinecopulib/vinecopulib/releases.
- C++
Published by tvatter over 4 years ago
pyvinecopulib - pyvinecopulib 0.5.5
Release following the update of vinecopulib to 0.5.5, see https://github.com/vinecopulib/vinecopulib/releases. The most relevant changes are summarized below.
BUG FIXES
fix little bug in copula selection based on mBIC
stabilize BB7 copula pdf
fix threshold selection for (near-)independent data
fix vine copula selection for 1-dimensional models with discrete variables
fix user-visible variable types
- C++
Published by tnagler over 5 years ago
pyvinecopulib - pyvinecopulib 0.5.4
Version 0.5.4 following the release of vinecopulib 0.5.4.
- C++
Published by tnagler over 5 years ago