EntropyHub
An Open-Source Toolkit For Entropic Time Series Analysis
EntropyHub.jl
is part of the EntropyHub project.
For more info visit: www.EntropyHub.xyz
Latest Updates
v2.0
––- New multivariate methods ––-
Five new multivariate entropy functions incorporating several method-specific variations
- Multivariate Sample Entropy
- Multivariate Fuzzy Entropy [++ many fuzzy functions]
- Multivariate Dispersion Entropy [++ many symbolic sequence transforms]
- Multivariate Cosine Similarity Entropy
- Multivariate Permutation Entropy [++ amplitude-aware, edge, phase, weighted and modified variants]
––- New multivariate multiscale methods ––-
Two new multivariate multiscale entropy functions
- Multivariate Multiscale Entropy [++ coarse, modified and generalized graining procedures]
- Composite and Refined-composite Multivariate Multiscale Entropy
––- Extra signal processing tools ––-
WindowData()
is a new function that allows users to segment data (univariate or multivariate time series) into windows with/without overlapping samples! This allows users to calculate entropy on subsequences of their data to perform analyses with greater time resolution.
Other little fixes...
––- Docs edits ––-
- Examples in the www.EntropyHub.xyz documentation were updated to match the latest package syntax.
Introduction
This toolkit provides a wide range of functions to calculate different entropy statistics. There is an ever-growing range of information-theoretic and dynamical systems entropy measures presented in the scientific literature. The goal of EntropyHub.jl is to integrate the many established entropy methods in one open-source package with an extensive documentation and consistent syntax [that is also accessible in multiple programming languages (Matlab, Python)].
About
Information and uncertainty can be regarded as two sides of the same coin: the more uncertainty there is, the more information we gain by removing that uncertainty. In the context of information and probability theory, Entropy quantifies that uncertainty.
Various measures have been derived to estimate entropy (uncertainty) from discrete time series, each seeking to best capture the uncertainty of the system under examination. This has resulted in many entropy statistics from approximate entropy and sample entropy, to multiscale sample entropy and refined-composite multiscale cross-sample entropy.
The goal of EntropyHub is to provide a comprehensive set of functions with a simple and consistent syntax that allows the user to augment parameters at the command line, enabling a range from basic to advanced entropy methods to be implemented with ease.
It is important to clarify that the entropy functions herein described estimate entropy in the context of probability theory and information theory as defined by Shannon, and not thermodynamic or other entropies from classical physics.
Installation
Using the Julia REPL:
julia> using Pkg; Pkg.add("EntropyHub")
or
julia> ]
pkg> add EntropyHub
To get the latest version of EntropyHub directly from GitHub:
julia> ]
pkg> add https://github.com/MattWillFlood/EntropyHub.jl
Citing
EntropyHub is licensed under the Apache License (Version 2.0) and is free to use by all on condition that the following reference be included on any outputs realized using the software:
Matthew W. Flood (2021),
EntropyHub: An Open-Source Toolkit for Entropic Time Series Analysis,
PLoS ONE 16(11):e0259448
DOI: 10.1371/journal.pone.0259448
www.EntropyHub.xyz
© Copyright 2024 Matthew W. Flood, EntropyHub
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
For Terms of Use see https://github.com/MattWillFlood/EntropyHub
If you find this package useful, please consider starring it on GitHub and Julia Packages (or MatLab File Exchange and PyPI). This helps us to gauge user satisfaction.
Contact
For general queries and information about EntropyHub, contact: info@entropyhub.xyz
If you have any questions or need help using the package, please contact us at: help@entropyhub.xyz
If you notice or identify any issues, please do not hesitate to contact us at: fix@entropyhub.xyz
We will do our best to help you with any relevant issues that you may have.
If you come across any errors or technical issues, you can raise these under the issues tab on the EntropyHub.jl GitHub page. Similarly, if you have any suggestions or recommendations on how this package can be improved, please let us know.
Thank you for using EntropyHub,
Matt
Function List
EntropyHub functions fall into 8 categories:
Base
functions for estimating the entropy of a single univariate time series.Cross
functions for estimating the entropy between two univariate time series.Bidimensional
functions for estimating the entropy of a two-dimensional univariate matrix.Multiscale
functions for estimating the multiscale entropy of a single univariate time series using any of the Base entropy functions.Multiscale Cross
functions for estimating the multiscale entropy between two univariate time series using any of the Cross-entropy functions.Multivariate Multiscale
functions for estimating the multivariate multiscale entropy of multivariate dataset using any of the Multivariate-entropy functions.Other
Supplementary functions for various tasks related to EntropyHub and signal processing.
EntropyHub._ApEn.ApEn
EntropyHub._AttnEn.AttnEn
EntropyHub._BubbEn.BubbEn
EntropyHub._CoSiEn.CoSiEn
EntropyHub._CondEn.CondEn
EntropyHub._DispEn.DispEn
EntropyHub._DispEn2D.DispEn2D
EntropyHub._DistEn.DistEn
EntropyHub._DistEn2D.DistEn2D
EntropyHub._DivEn.DivEn
EntropyHub._EnofEn.EnofEn
EntropyHub._EspEn2D.EspEn2D
EntropyHub._ExampleData.ExampleData
EntropyHub._FuzzEn.FuzzEn
EntropyHub._FuzzEn2D.FuzzEn2D
EntropyHub._GridEn.GridEn
EntropyHub._IncrEn.IncrEn
EntropyHub._K2En.K2En
EntropyHub._MSEn.MSEn
EntropyHub._MSobject.MSobject
EntropyHub._MvCoSiEn.MvCoSiEn
EntropyHub._MvDispEn.MvDispEn
EntropyHub._MvFuzzEn.MvFuzzEn
EntropyHub._MvMSEn.MvMSEn
EntropyHub._MvPermEn.MvPermEn
EntropyHub._MvSampEn.MvSampEn
EntropyHub._PermEn.PermEn
EntropyHub._PermEn2D.PermEn2D
EntropyHub._PhasEn.PhasEn
EntropyHub._RangEn.RangEn
EntropyHub._SampEn.SampEn
EntropyHub._SampEn2D.SampEn2D
EntropyHub._SlopEn.SlopEn
EntropyHub._SpecEn.SpecEn
EntropyHub._SyDyEn.SyDyEn
EntropyHub._WindowData.WindowData
EntropyHub._XApEn.XApEn
EntropyHub._XCondEn.XCondEn
EntropyHub._XDistEn.XDistEn
EntropyHub._XFuzzEn.XFuzzEn
EntropyHub._XK2En.XK2En
EntropyHub._XMSEn.XMSEn
EntropyHub._XPermEn.XPermEn
EntropyHub._XSampEn.XSampEn
EntropyHub._XSpecEn.XSpecEn
EntropyHub._cMSEn.cMSEn
EntropyHub._cMvMSEn.cMvMSEn
EntropyHub._cXMSEn.cXMSEn
EntropyHub._hMSEn.hMSEn
EntropyHub._hXMSEn.hXMSEn
EntropyHub._rMSEn.rMSEn
EntropyHub._rXMSEn.rXMSEn
___ _ _ _____ _____ ____ ____ _ _
| _|| \ | ||_ _|| \| || || \ / | ___________
| \_ | \| | | | | __/| || __| \ \_/ / / _______ \
| _|| \ \ | | | | \ | || | \ / | / ___ \ |
| \_ | |\ | | | | |\ \ | || | | | | | / \ | |
|___||_| \_| |_| |_| \_||____||_| |_| _|_|__\___/ | |
_ _ _ _ ____ / |__\______\/ |
| | | || | | || \ An open-source | /\______\__|_/
| |_| || | | || | toolkit for | | / \ | |
| _ || | | || \ entropic time- | | \___/ | |
| | | || |_| || \ series analysis | \_______/ |
|_| |_|\_____/|_____/ \___________/
Documentation for EntropyHub.