Demonstration Notebooks Overview
=================================
lrdbenchmark ships a Markdown-based notebook set (converted from the original Jupyter notebooks) that mirrors the tutorial series published in this documentation. Each notebook is self-contained, well annotated, and follows the same progression as the narrative material.
Notebook Structure
------------------
The demonstration notebooks follow a progressive learning structure:
1. **Data Generation & Visualization** - Understanding stochastic models
2. **Estimation & Validation** - Learning estimator categories and statistical validation
3. **Custom Models & Estimators** - Library extensibility and custom implementations
4. **Comprehensive Benchmarking** - Full benchmarking system with contamination testing
5. **Leaderboard Generation** - Performance rankings and comparative analysis
Tutorial Series
---------------
The instructional material previously hosted exclusively as notebooks is now published as a structured tutorial sequence. For the canonical, documentation-friendly narrative, follow the multi-part series:
- :doc:`/tutorials/tutorial_01_synthetic_data` — Generating synthetic and realistic LRD data, including contamination scenarios
- :doc:`/tutorials/tutorial_02_estimators` — Estimating the Hurst parameter with statistical validation and uncertainty quantification
- :doc:`/tutorials/tutorial_03_customization` — Extending lrdbenchmark with custom data generators and estimators
- :doc:`/tutorials/tutorial_04_benchmarking` — Running comprehensive and contamination-aware benchmarks
- :doc:`/tutorials/tutorial_05_leaderboards` — Building stratified leaderboards and publishing results
Notebook storage format
-----------------------
To keep the repository lightweight and diff-friendly, notebooks are distributed as Markdown files in ``notebooks/markdown/`` together with exported figures and data artefacts. They can be opened directly in editors that understand MyST/Markdown notebooks, or converted back to ``.ipynb`` format with tools such as `Jupytext `_.
Getting Started with Notebooks
==============================
Prerequisites
-------------
- Python 3.10–3.12
- Jupyter Notebook or JupyterLab
- lrdbenchmark installed (``pip install lrdbenchmark``)
Converting back to ``.ipynb``
-----------------------------
1. **Clone the repository**:
.. code-block:: bash
git clone https://github.com/dave2k77/lrdbenchmark.git
cd lrdbenchmark
2. **Install the optional tooling**:
.. code-block:: bash
pip install -e .
pip install jupytext jupyter matplotlib seaborn
3. **Convert and launch**:
.. code-block:: bash
jupytext --to notebook notebooks/markdown/01_data_generation_and_visualisation.md
jupyter notebook notebooks/markdown/
4. **Open the converted notebooks** in order for the complete learning experience.
Notebook Features
-----------------
- **Self-contained**: Each notebook runs independently
- **Progressive complexity**: Build from simple to advanced concepts
- **Practical focus**: Real-world workflows, not just API documentation
- **Reproducible**: Fixed seeds, saved outputs
- **Well-documented**: Extensive markdown and comments
- **Visual**: Rich plots and tables throughout
- **Educational**: Explain why, not just how
Output Files
------------
Each notebook generates the same artefacts as the original ``.ipynb`` versions:
- **Visualisations**: High-quality plots saved to ``outputs/``.
- **Data files**: CSV/JSON exports of results.
- **Performance metrics**: Detailed analysis tables.
- **Publication-ready figures**: LaTeX/PNG formats.
Cross-References
----------------
The notebooks are designed to work together:
- **Notebook 1** → **Notebook 2**: Use generated data for estimation
- **Notebook 2** → **Notebook 3**: Apply estimators to custom models
- **Notebook 3** → **Notebook 4**: Include custom components in benchmarks
- **Notebook 4** → **Notebook 5**: Use benchmark results for leaderboards
This creates a complete workflow from data generation to performance analysis.
Support and Contributing
=========================
- **Issues**: Report problems with notebooks on `GitHub Issues `_
- **Discussions**: Ask questions on `GitHub Discussions `_
- **Contributing**: Submit improvements via pull requests
The notebooks are actively maintained and updated with each library release.