nolds

Nonlinear measures for dynamical systems (based on one-dimensional time series)

https://github.com/cschoel/nolds

Science Score: 49.0%

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

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 5 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.1%) to scientific vocabulary

Keywords from Contributors

standardization report
Last synced: 6 months ago · JSON representation

Repository

Nonlinear measures for dynamical systems (based on one-dimensional time series)

Basic Info
  • Host: GitHub
  • Owner: CSchoel
  • License: mit
  • Language: Python
  • Default Branch: main
  • Size: 1.42 MB
Statistics
  • Stars: 289
  • Watchers: 12
  • Forks: 62
  • Open Issues: 22
  • Releases: 3
Created over 9 years ago · Last pushed 7 months ago
Metadata Files
Readme Changelog License

README.rst

NOnLinear measures for Dynamical Systems (nolds)
================================================

.. image:: https://github.com/CSchoel/nolds/actions/workflows/ci.yaml/badge.svg
    :target: https://github.com/CSchoel/nolds/actions/workflows/ci.yaml

.. image:: https://zenodo.org/badge/DOI/10.5281/zenodo.3814723.svg
   :target: https://doi.org/10.5281/zenodo.3814723

.. image:: https://api.codacy.com/project/badge/Grade/42c30d253b384e87a86b70c8fa0da6b2
    :target: https://www.codacy.com/app/christopher.schoelzel/nolds?utm_source=github.com&utm_medium=referral&utm_content=CSchoel/nolds&utm_campaign=Badge_Grade

.. image:: https://codecov.io/gh/CSchoel/nolds/graph/badge.svg?token=Xgr82QKhFi 
    :target: https://codecov.io/gh/CSchoel/nolds


Nolds is a small numpy-based library that provides an implementation and a learning resource for nonlinear measures for dynamical systems based on one-dimensional time series.

Currently the following measures are implemented:

**sample entropy** (``sampen``)
    Measures the complexity of a time-series, based on approximate entropy
**correlation dimension** (``corr_dim``)
    A measure of the *fractal dimension* of a time series which is also related to complexity.
**Lyapunov exponent** (``lyap_r``, ``lyap_e``)
    Positive Lyapunov exponents indicate chaos and unpredictability.
    Nolds provides the algorithm of Rosenstein et al. (``lyap_r``) to estimate the largest Lyapunov exponent and the algorithm of Eckmann et al. (``lyap_e``) to estimate the whole spectrum of Lyapunov exponents.
**Hurst exponent** (``hurst_rs``)
	The Hurst exponent is a measure of the "long-term memory" of a time series.
	It can be used to determine whether the time series is more, less, or equally likely to increase if it has increased in previous steps.
	This property makes the Hurst exponent especially interesting for the analysis of stock data.
**detrended fluctuation analysis (DFA)** (``dfa``)
	DFA measures the Hurst parameter *H*, which is very similar to the Hurst exponent.
	The main difference is that DFA can be used for non-stationary processes (whose mean and/or variance change over time).
**Generalized Hurst Exponent** (``mfhurst_b``)
    The Generalized Hurst Exponent (GHE, H_q or H(q)) can (as the name implies) be seen as a generalization of the Hurst exponent for data series with multifractal properties.
    It's origins are however not directly related to Hurst's rescaled range approach, but to the definition of self-affine functions.

    .. warning::
        Nolds also supports the GHE implementation by Di Matteo and Aste (2003) as ``mfhurst_dm``.
        However, it is not recommended to use this for anything else than reproducing the results of the authors.
        Instead, use ``mfhurst_b``, which is more stable and mathematically sound.


Example
-------

::

	import nolds
	import numpy as np

	rwalk = np.cumsum(np.random.random(1000))
	h = nolds.dfa(rwalk)

Requirements
------------
Nolds supports Python 2 (>= 2.7) and 3 (>= 3.4) from one code source. It requires the package numpy_.

These are the only hard requirements, but some functions will need other packages:

* If you want to use the RANSAC algorithm for line fitting, you will also need the package sklearn_.
* For the true random numbers generated by ``nolds.qrandom`` you need the package quantumrandom_.
* The plotting functions in ``nolds.examples`` require the package matplotlib_.

.. _numpy: http://numpy.scipy.org/
.. _sklearn: http://scikit-learn.org/stable/
.. _quantumrandom: https://pypi.python.org/pypi/quantumrandom/1.9.0
.. _matplotlib: https://matplotlib.org/

Installation
------------
Nolds is available through PyPI and can be installed using pip:

``pip install nolds``

You can test your installation by running some sample code with:

``python -m nolds.examples lyapunov-logistic``

Alternatively, if you do not have matplotlib_ installed, you can run the unittests with:

``python -m unittest nolds.test_measures``

Documentation
-------------

Nolds is designed as a learning resource for the measures mentioned above.
Therefore the corresponding functions feature extensive documentation that not only explains the interface but also the algorithm used and points the user to additional reference code and papers.
The documentation can be found in the code, but it is also available as `HTML-Version `_ and on `Read the Docs `_.

The relevant measures can be found in the file ``nolds/measures.py``.


How to cite nolds
-----------------

I am planning to publish nolds in a peer-reviewed journal, but as this is a side project of my PhD thesis this may take a while.
For the time being you can use the following `Zenodo reference`_:

    Schölzel, Christopher. (2019, June 16). Nonlinear measures for dynamical systems (Version 0.5.2). Zenodo. http://doi.org/10.5281/zenodo.3814723

You can also `export a BibTeX reference`_ from Zenodo.

.. _Zenodo reference: https://zenodo.org/record/3814723
.. _export a BibTeX reference: https://zenodo.org/record/3814723/export/hx


Contact information
-------------------

If you have any questions, suggestions or corrections, you can find my contact
information in `my GitHub profile`_ or on `my blog`_.

Please note that this is one of my side projects.
Depending on my current workload it may take days, weeks or even months until
I can find the time to check on mails and issues for nolds.

.. _my GitHub profile: https://github.com/CSchoel
.. _my blog: http://arbitrary-but-fixed.net/

Owner

  • Name: Christopher Schölzel
  • Login: CSchoel
  • Kind: user
  • Location: Münster, Germany
  • Company: LanguageTool

AI Engineer at LanguageTool with a passion for teaching and open source

GitHub Events

Total
  • Create event: 3
  • Release event: 1
  • Issues event: 19
  • Watch event: 30
  • Delete event: 2
  • Issue comment event: 14
  • Push event: 25
  • Pull request review comment event: 7
  • Pull request review event: 6
  • Pull request event: 4
  • Fork event: 4
Last Year
  • Create event: 3
  • Release event: 1
  • Issues event: 19
  • Watch event: 30
  • Delete event: 2
  • Issue comment event: 14
  • Push event: 25
  • Pull request review comment event: 7
  • Pull request review event: 6
  • Pull request event: 4
  • Fork event: 4

Committers

Last synced: over 2 years ago

All Time
  • Total Commits: 403
  • Total Committers: 5
  • Avg Commits per committer: 80.6
  • Development Distribution Score (DDS): 0.395
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Christopher Schoelzel c****l@m****e 244
Christopher Schölzel c****l@g****t 156
Nick Ross n****0@g****m 1
Dominique Makowski d****9@g****m 1
fkemeth f****h 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 54
  • Total pull requests: 22
  • Average time to close issues: 7 months
  • Average time to close pull requests: 12 days
  • Total issue authors: 24
  • Total pull request authors: 4
  • Average comments per issue: 1.81
  • Average comments per pull request: 0.45
  • Merged pull requests: 19
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 14
  • Pull requests: 12
  • Average time to close issues: 4 months
  • Average time to close pull requests: 8 days
  • Issue authors: 4
  • Pull request authors: 1
  • Average comments per issue: 1.14
  • Average comments per pull request: 0.75
  • Merged pull requests: 9
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • CSchoel (31)
  • lcoandrade (2)
  • Krishnanunnis (1)
  • mcherkassky (1)
  • alangiontra (1)
  • williamgilpin (1)
  • toinsson (1)
  • DominiqueMakowski (1)
  • Apollo-XI (1)
  • EmreAtes (1)
  • jamesredwards (1)
  • ricardofrantz (1)
  • dorian821 (1)
  • lizhiyuan81 (1)
  • catubc (1)
Pull Request Authors
  • CSchoel (24)
  • NickRoss (1)
  • fkemeth (1)
  • DominiqueMakowski (1)
Top Labels
Issue Labels
epic (5) question (1) bug (1)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 29,123 last-month
  • Total dependent packages: 9
  • Total dependent repositories: 43
  • Total versions: 17
  • Total maintainers: 1
pypi.org: nolds

Nonlinear measures for dynamical systems (based on one-dimensional time series)

  • Versions: 17
  • Dependent Packages: 9
  • Dependent Repositories: 43
  • Downloads: 29,123 Last month
  • Docker Downloads: 0
Rankings
Dependent packages count: 1.2%
Dependent repos count: 2.2%
Downloads: 2.4%
Average: 3.4%
Stargazers count: 4.5%
Docker downloads count: 4.6%
Forks count: 5.6%
Maintainers (1)
Last synced: 7 months ago

Dependencies

setup.py pypi
  • future *
  • numpy *
  • setuptools *