Papers
Topics
Authors
Recent
2000 character limit reached

ComplexityMeasures.jl: scalable software to unify and accelerate entropy and complexity timeseries analysis (2406.05011v3)

Published 7 Jun 2024 in cs.SE, cs.IT, math.IT, and nlin.CD

Abstract: In the nonlinear timeseries analysis literature, countless quantities have been presented as new entropy'' orcomplexity'' measures, often with similar roles. The ever-increasing pool of such measures makes creating a sustainable and all-encompassing software for them difficult both conceptually and pragmatically. Such a software however would be an important tool that can aid researchers make an informed decision of which measure to use and for which application, as well as accelerate novel research. Here we present {ComplexityMeasures.jl}, an easily extendable and highly performant open-source software that implements a vast selection of complexity measures. The software provides 1638 measures with 3,841 lines of source code, averaging only 2.3 lines of code per exported quantity (version 3.7). This is made possible by its mathematically rigorous composable design. In this paper we discuss the software design and demonstrate how it can accelerate complexity-related research in the future. We carefully compare it with alternative software and conclude that {ComplexityMeasures.jl} outclasses the alternatives in several objective aspects of comparison, such as computational performance, overall amount of measures, reliability, and extendability. {ComplexityMeasures.jl} is also a component of the {DynamicalSystems.jl} library for nonlinear dynamics and nonlinear timeseries analysis and follows open source development practices for creating a sustainable community of developers and contributors.

Citations (1)

Summary

  • The paper introduces a modular software architecture that separates probability estimation from complexity mapping to define thousands of measures.
  • It achieves up to 1,000x speed improvements through optimized algorithms, including Lehmer codes for efficient ordinal pattern computations.
  • The software’s extendability and integration with Julia ecosystems empower advanced timeseries analysis and nonlinear dynamics research.

ComplexityMeasures.jl: Scalable Software for Unified and Accelerated Entropy and Complexity Timeseries Analysis

The paper "ComplexityMeasures.jl: scalable software to unify and accelerate entropy and complexity timeseries analysis" by George Datseris et al. introduces a comprehensive software tool designed to address the myriad of entropy and complexity measures in the nonlinear timeseries analysis field. ComplexityMeasures.jl offers an extensible, high-performance open-source package developed in Julia, specifically catering to the needs of the research community engaged in complexity quantification.

The motivation for this work stems from the proliferation of complexity measures in the literature, often presenting similar roles but with nuanced differences. Traditional software approaches, which typically implement one function per measure, are deemed unsustainable because they lead to maintenance challenges and scalability issues.

Key Contributions:

  1. Composable Design and Extensibility: The software employs a mathematically rigorous, composable design that separates the estimation of probabilities from their mapping onto outcome spaces and complexity measures. This modular approach allows for defining thousands of complexity measures through a combination of a small number of basic components.
  2. Orthogonality and Extendability: ComplexityMeasures.jl achieves orthogonality through its design, where new outcome spaces, entropy definitions, or probability estimators can be added independently. This ensures that the addition of one component multiplies the set of available measures combinatorially, facilitating rapid expansion without bloating the codebase.
  3. Performance Optimizations: Extensive optimizations, including algorithmic improvements and specialized data structures, ensure that the software significantly outperforms existing alternatives, as evidenced by benchmarks showing up to 1,000x speed improvements. Key examples include the use of Lehmer codes for ordinal pattern computations and a novel algorithm for high-dimensional histogram calculations.

Practical and Theoretical Implications:

  • Empirical Evaluation:

The paper includes practical examples to demonstrate the capabilities of the software. It explores stock market timeseries using a variety of complexity measures and demonstrates the software's application in surrogate data testing for nonlinearity detection, outperforming existing measures.

  • Enhanced Research Capabilities:

By integrating with the DynamicalSystems.jl and CausalityTools.jl ecosystems, ComplexityMeasures.jl provides a robust platform for conducting advanced timeseries and nonlinear dynamics research. It simplifies workflows involving surrogate testing, fractal dimensions, and embedding optimization, thus reducing the barrier to comprehensive analysis.

  • Future Developments:

The authors advocate for the adoption of this software framework by the research community, encouraging the integration of new complexity measures directly into ComplexityMeasures.jl. This approach promises enhanced reliability, reproducibility, and accessibility of newly developed measures, fostering collaborative improvements and best practices in scientific software development.

Comprehensive Documentation and Community Engagement:

  • Open Source Practices:

The software is developed following best practices for open-source scientific software, including extensive testing (covering 90% of the source code), continuous integration, and detailed documentation. This ensures high reliability and ease of contribution for new developers.

  • Educational Value:

Through clear and instructive documentation, including tutorials and example code, ComplexityMeasures.jl serves as an educational tool for both newcomers and experienced researchers in the field of complexity analysis.

Conclusion:

ComplexityMeasures.jl is a robust, highly performant, and extendable software package that addresses the current limitations in complexity and entropy timeseries analysis. By providing a unified and scalable solution, it enables a deeper and more comprehensive exploration of complex datasets, thus advancing both theoretical research and practical applications in complex systems analysis. The software's design philosophy paves the way for future expansions, ensuring its relevance and utility in ongoing and future research endeavors.

Whiteboard

Paper to Video (Beta)

Open Problems

We haven't generated a list of open problems mentioned in this paper yet.

Continue Learning

We haven't generated follow-up questions for this paper yet.

Collections

Sign up for free to add this paper to one or more collections.

Tweets

Sign up for free to view the 1 tweet with 37 likes about this paper.