Skip to content

antiCPy "James Bond" release 0.0.7: Strong parallelization, maximum posterior estimation and two-dimensional models for drift slopes estimators and introduction of a dominant eigenvalue estimator.

Choose a tag to compare

@MartinHessler MartinHessler released this 10 Oct 08:08
· 61 commits to main since this release

The structure of the package has changed slightly due to enhancements of the early_warnings package and significant improvements of the already implemented methods. The update is backwards compatible. It might only be necessary to adapt the antiCPy import statements of old Python scripts.

This antiCPy "James Bond" release 0.0.7 contains significant enhancements and improvements:

  • The MCMC based LangevinEstimation model is complemented by a two dimensional model in the NonMarkovEstimation class. Instead of a Wiener process noise term, an Ornstein-Uhlenbeck process Y couples into X. It is possible to define a priori a time scale separation between X and Y to mirror prior knowledge.
  • The implemented models including the new two dimensional model can be estimated via a maximum posterior (MAP) approach which is much faster than the MCMC version. The corresponding method is perform_MAP_resilience_scan(...). This is thought to be advantageous to scan new data for resilience changes without time-consuming computations. Special attention might be dedicated to the confidence bands of the MAP estimates (cf. documentation).
  • Furthermore, the MAP approach is implemented in the child class BinningLangevinEstimation. The binned version leads to additional speed ups if the time windows contain much data. Otherwise, use the normal MAP approach.
  • Additionally, the computation time of the MCMC and MAP versions is optimized by implementing the resilience estimation of multiple windows at the same time by multiprocessing. In that way, the serial computation times are basically divided by the number of dedicated processes. To this end, a superclass RocketFastResilienceEstimation implements a fast_resilience_scan(...) and fast_MAP_resilience_scan(...) method. They make use of the child classes per parallel window calculation.
  • A second resilience measure, the dominant eigenvalue is introduced under early_warnings: first, the drift slope (in the drift_slope package) and second, the dominant eigenvalue. The dominant_eigenvalue package implements basic functions to perform a dominant eigenvalue estimation. It is not structured by classes, but by procedural modules.

Further notes:

  • The documentation is largely enhanced and includes now comments on the efficient change point analysis as well as a description of the added classes and methods which are mentioned above.
  • In case of the dominant_eigenvalue package, a tutorial and mathematical chapters are added to the documentation.