complexitymeasures.jl

Estimators for probabilities, entropies, and other complexity measures derived from data in the context of nonlinear dynamics and complex systems

https://github.com/juliadynamics/complexitymeasures.jl

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 4 DOI reference(s) in README
  • Academic publication links
  • Committers with academic emails
    2 of 12 committers (16.7%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.9%) to scientific vocabulary

Keywords

complex-systems complexity entropy frequency hacktoberfest julia nonlinear nonlinear-dynamics nonlinear-timeseries-analysis ordinal-patterns permutation-entropy probability state-space

Keywords from Contributors

dynamical-systems chaos surrogate dynamicalsystems dimension lyapunov attractor physics fluxes julialang
Last synced: 6 months ago · JSON representation ·

Repository

Estimators for probabilities, entropies, and other complexity measures derived from data in the context of nonlinear dynamics and complex systems

Basic Info
  • Host: GitHub
  • Owner: JuliaDynamics
  • License: mit
  • Language: Julia
  • Default Branch: main
  • Homepage:
  • Size: 180 MB
Statistics
  • Stars: 72
  • Watchers: 6
  • Forks: 14
  • Open Issues: 54
  • Releases: 73
Topics
complex-systems complexity entropy frequency hacktoberfest julia nonlinear nonlinear-dynamics nonlinear-timeseries-analysis ordinal-patterns permutation-entropy probability state-space
Created over 5 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog License Citation

README.md

ComplexityMeasures.jl

docsdev docsstable CI codecov Package Downloads Package Downloads publication

ComplexityMeasures.jl is a Julia-based software for calculating 1000s of various kinds of probabilities, entropies, and other so-called complexity measures from a single-variable input datasets. For relational measures across many input datasets see its extension Associations.jl. If you are a user of other programming languages (Python, R, MATLAB, ...), you can still use ComplexityMeasures.jl due to Julia's interoperability. For example, for Python use juliacall.

A careful comparison with alternative widely used software shows that ComplexityMeasures.jl outclasses the alternatives in several objective aspects of comparison, such as computational performance, overall amount of measures, reliability, and extendability. See the associated publication for more details.

The key features that ComplexityMeasures.jl provides can be summarized as:

  • A rigorous framework for extracting probabilities from data, based on the mathematical formulation of probability spaces.
  • Several (12+) outcome spaces, i.e., ways to discretize data into probabilities.
  • Several estimators for estimating probabilities given an outcome space, which correct theoretically known estimation biases.
  • Several definitions of information measures, such as various flavours of entropies (Shannon, Tsallis, Curado...), extropies, and other complexity measures, that are used in the context of nonlinear dynamics, nonlinear timeseries analysis, and complex systems.
  • Several discrete and continuous (differential) estimators for entropies, which correct theoretically known estimation biases.
  • An extendable interface and well thought out API accompanied by dedicated developer documentation. This makes it trivial to define new outcome spaces, or new estimators for probabilities, information measures, or complexity measures and integrate them with everything else in the software without boilerplate code.

ComplexityMeasures.jl can be used as a standalone package, or as part of other projects in the JuliaDynamics organization, such as DynamicalSystems.jl or Associations.jl.

To install it, run import Pkg; Pkg.add("ComplexityMeasures").

All further information is provided in the documentation, which you can either find online or build locally by running the docs/make.jl file.

Previously, this package was called Entropies.jl.

Owner

  • Name: JuliaDynamics
  • Login: JuliaDynamics
  • Kind: organization

A Julia-based software organization for dynamical systems, nonlinear dynamics, complex systems and the complexities of the scientific life

Citation (CITATION.bib)

@article{ComplexityMeasures.jl,
  title = {ComplexityMeasures.jl: Scalable software to unify and accelerate entropy and complexity timeseries analysis},
  volume = {20},
  ISSN = {1932-6203},
  url = {http://dx.doi.org/10.1371/journal.pone.0324431},
  DOI = {10.1371/journal.pone.0324431},
  number = {6},
  journal = {PLOS One},
  publisher = {Public Library of Science (PLoS)},
  author = {Datseris,  George and Haaga,  Kristian Agasøster},
  editor = {Mengarelli,  Alessandro},
  year = {2025},
  month = jun,
  pages = {e0324431}
}

GitHub Events

Total
  • Create event: 7
  • Commit comment event: 2
  • Issues event: 4
  • Release event: 5
  • Watch event: 13
  • Delete event: 3
  • Issue comment event: 27
  • Push event: 26
  • Pull request review comment event: 2
  • Pull request review event: 5
  • Pull request event: 7
  • Fork event: 2
Last Year
  • Create event: 7
  • Commit comment event: 2
  • Issues event: 4
  • Release event: 5
  • Watch event: 13
  • Delete event: 3
  • Issue comment event: 27
  • Push event: 26
  • Pull request review comment event: 2
  • Pull request review event: 5
  • Pull request event: 7
  • Fork event: 2

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 456
  • Total Committers: 12
  • Avg Commits per committer: 38.0
  • Development Distribution Score (DDS): 0.314
Past Year
  • Commits: 19
  • Committers: 5
  • Avg Commits per committer: 3.8
  • Development Distribution Score (DDS): 0.579
Top Committers
Name Email Commits
Kristian Agasøster Haaga k****a@g****m 313
George Datseris d****e@g****m 119
github-actions[bot] 4****] 8
Jay-sanjay 1****y 4
Inga Kottlarz 6****z 4
András Rusu 6****s 2
Steven G. Johnson s****j@m****u 1
Shruti Dalvi 1****i 1
Max de Rooij m****j@t****l 1
HeineRugland 1****d 1
Francesco Martinuzzi m****o@g****m 1
Alistair White 5****r 1
Committer Domains (Top 20 + Academic)
tue.nl: 1 mit.edu: 1

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 134
  • Total pull requests: 148
  • Average time to close issues: about 2 months
  • Average time to close pull requests: 7 days
  • Total issue authors: 8
  • Total pull request authors: 13
  • Average comments per issue: 4.34
  • Average comments per pull request: 4.83
  • Merged pull requests: 127
  • Bot issues: 0
  • Bot pull requests: 6
Past Year
  • Issues: 4
  • Pull requests: 8
  • Average time to close issues: 20 days
  • Average time to close pull requests: 9 days
  • Issue authors: 3
  • Pull request authors: 4
  • Average comments per issue: 7.5
  • Average comments per pull request: 1.63
  • Merged pull requests: 5
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • kahaaga (82)
  • Datseris (33)
  • rusandris (5)
  • shayandavoodii (1)
  • CNelias (1)
  • Yonatan-Beer (1)
  • JuliaTagBot (1)
Pull Request Authors
  • kahaaga (98)
  • Datseris (51)
  • github-actions[bot] (5)
  • Jay-sanjay (5)
  • rusandris (4)
  • ikottlarz (3)
  • max-de-rooij (2)
  • ShrutiRDalvi (2)
  • HeineRugland (1)
  • white-alistair (1)
  • Chronum94 (1)
  • ljahn (1)
  • MartinuzziFrancesco (1)
Top Labels
Issue Labels
good first issue (26) discussion-design (24) documentation (18) enhancement (18) bug (11) high priority (6) low priority (6) performance (5) encodings (5) new complexity measure (4) tests (3) cleanup (3) new outcome space (3) new complexity estimator (2) improvement (2) code-clarity (2) new entropy (2) outcomes/probabilities (2) new probabilities (1) new method (1) breaking (1) question (1) new differential entropy estimator (1) help wanted (1) binning (1) symbolization (1)
Pull Request Labels
documentation (10) enhancement (7) discussion-design (6) cleanup (4) new complexity measure (3) new method (3) code-clarity (3) bug (3) bug fix (3) tests (2) new differential entropy estimator (2) new entropy (2) new outcome space (2) symbolization (1) hacktoberfest-accepted (1) binning (1) improvement (1) encodings (1) new discrete estimator (1) help wanted (1) new probabilities (1)

Dependencies

.github/workflows/CompatHelper.yml actions
  • julia-actions/setup-julia latest composite
.github/workflows/TagBot.yml actions
  • JuliaRegistries/TagBot v1 composite
.github/workflows/ci.yml actions
  • actions/cache v1 composite
  • actions/checkout v2 composite
  • codecov/codecov-action v1 composite
  • julia-actions/julia-buildpkg v1 composite
  • julia-actions/julia-processcoverage v1 composite
  • julia-actions/julia-runtest v1 composite
  • julia-actions/setup-julia v1 composite
  • styfle/cancel-workflow-action 0.6.0 composite
.github/workflows/doccleanup.yml actions
  • actions/checkout v2 composite
.github/workflows/documentation.yml actions
  • actions/checkout v2 composite
  • julia-actions/setup-julia v1 composite