transfer-entropy-toolbox
Rewrite and extension of the research in my M.Sc. thesis for publication
Science Score: 44.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
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (15.7%) to scientific vocabulary
Keywords
Repository
Rewrite and extension of the research in my M.Sc. thesis for publication
Basic Info
- Host: GitHub
- Owner: maxmynter
- Language: Python
- Default Branch: main
- Homepage: https://www.maxmynter.com/master_thesis_mynter.pdf
- Size: 258 KB
Statistics
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 0
Topics
Metadata Files
README.md
Transfer Entropy Toolbox and application to Futures time series before and during COVID
This is a rigorous rewrite and extension of the research in my master thesis.
This is the directory structure.
bash
├── README.md
├── analysis
├── scratchpad
├── src
└── tests
the src/te_toolbox contains all the reusable code.
Mainly this is the entropy functions (univariate, bi-variate, and transfer entropy with different normalizations), utilities to generate synthetic data from chaotic maps, and implementations of various binning methods.
There are two implementations of most of the entropies; one in Python with NumPy optimization and another one in C++ for better performance. The latter is the default. But you can change the backend to Python like so: ```python from tetoolbox.entropies.core import import Backend, setbackend
setbackend(Backend.CPP.value) setbackend(Backend.PY.value) ```
The analysis directory contains the data, plots, and scripts directories and the subdirectories for the corresponding experiments.
Data is not included in the version control.
You can recreate the synthetic data by running the corresponding analysis scripts.
The Futures timeseries cannot be shared due to contractual agreement.
The scratchpad directory contains code for ad-hoc analysis, benchmarks, and general tinkering that is not rigorous and not part of the paper.
The tests directory contains the test suite. That is functional and hypothesis tests as well as tests for consistency with the legacy implementation during my thesis.
More on that below.
Development Setup
Installation
Clone the repository and install in development mode with:
bash
git clone https://github.com/maxmynte/msc-paper.git
cd te-toolbox
pip install -e ".[dev]"
Testing
The project uses pytest and hypothesis for testing. The test suite is split into two parts: 1. Regular tests for the current implementation 2. Legacy tests that check consistency with the original thesis implementation
Running Regular Tests
By default, only the regular test suite runs. Install development dependencies and run:
bash
pip install -e ".[dev]"
pytest
Running Legacy Consistency Tests
I am rewriting large chunks of the codebase that was the foundation of my thesis to incorporate the practices I've developed as a software engineer since then.
There is a dedicated test suite to test consistencies against the legacy codebase. The legacy code requires additional dependencies and the tests are disabled by default. To run them:
Install legacy test dependencies:
bash pip install -e ".[legacy-tests]"Run tests with one of these options: ```bash
Run only legacy tests
pytest -m legacy
Run all tests including legacy
pytest -m "legacy or not legacy" ```
Owner
- Name: Max Mynter
- Login: maxmynter
- Kind: user
- Repositories: 59
- Profile: https://github.com/maxmynter
MLOps SWE at @aai-institute
Citation (CITATION.cff)
cff-version: 1.2.0
title: Transfer Entropy Toolbox
message: >-
If you use this software, please cite it using the
metadata from this file.
type: software
authors:
- given-names: Max
family-names: Mynter
email: maxmynter@icloud.com
repository-code: 'https://github.com/maxmynter/transfer-entropy-toolbox'
license: MIT
GitHub Events
Total
- Push event: 43
Last Year
- Push event: 43
Dependencies
- matplotlib *
- numpy *
- pandas *