ComplexityMeasures.jl icon indicating copy to clipboard operation
ComplexityMeasures.jl copied to clipboard

Triangulation-based estimators

Open kahaaga opened this issue 3 years ago • 11 comments

  • Two new transfer operator estimators: The TransferOperator probabilities estimator now not only accepts RectangularBinning as an argument, but also SimplexPoint and SimplexExact, which uses a triangulated binning of the points.
  • Requires-block. SimplexPoint and SimplexExact uses Simplices.jl, which depends on PyCall, so I used a @requires block for this code to avoid long loading times for the package. That means the user has to run using Simplices after running using Entropies. This is documented in the estimator docstrings.
  • Rename transfermatrix to transitioninfo. Entries of the triangulation-based transfer matrices correspond to simplices, not rectangular boxes. Therefore, to map probabilities of the transfer matrix to partition elements, we need info both about the vertices of the triangulation and which of these vertices form the different simplices. I have therefore created a TransitionInfo return struct that accomodates this information, both for rectangular and triangulation-based binnings.
  • Generator approach: For the transfer operator based probability estimators, use the generator approach as we did in TimeseriesSurrogates.jl. This functionality is not exposed to the user, but used internally. This is implemented because it will be useful in upstream packages, and I don't want to re-implement this in another package when it just as well can live here.

The new estimators and behaviour is documented here.

  • Release Entropies v1.0.0? I don't have any more methods or new functionality to add in the immediate future, and I am very happy with the syntax as is, so I think we can go for v1.0.0. With these added estimators, I have all I need to officially release CausalityTools v1.0 too. What do you think, @Datseris?

kahaaga avatar Feb 20 '21 13:02 kahaaga