lrdbenchmark


Namelrdbenchmark JSON
Version 2.1.0 PyPI version JSON
download
home_pageNone
SummaryComprehensive Long-Range Dependence Benchmarking Framework with Neural Network Factory - Three-Way Comparison: Classical vs ML vs Neural Networks
upload_time2025-09-06 16:03:04
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseMIT
keywords long-range dependence hurst parameter time series analysis benchmarking machine learning neural networks reproducible research fractional brownian motion wavelet analysis spectral analysis
VCS
bugtrack_url
requirements numpy scipy scikit-learn pandas torch jax jaxlib numba pywavelets matplotlib seaborn psutil networkx optuna numpyro
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # LRDBenchmark: A Comprehensive Framework for Long-Range Dependence Estimation

[![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![DOI](https://img.shields.io/badge/DOI-10.1000/xyz-blue.svg)](https://doi.org/10.1000/xyz)

A comprehensive and reproducible framework for benchmarking Long-Range Dependence (LRD) estimation methods with intelligent optimization backend, comprehensive adaptive classical estimators, production-ready machine learning models, and neural network factory.

## ๐ŸŽฏ Overview

LRDBenchmark provides a standardized platform for evaluating and comparing LRD estimators with automatic framework selection (GPU/JAX, CPU/Numba, NumPy), robust error handling, and realistic contamination testing. Our latest comprehensive benchmark shows **RandomForest (ML) achieves the best performance** (0.0233 MAE) while **Neural Networks provide excellent speed-accuracy trade-offs** (0.0410-0.0814 MAE, 0.0ms execution time).

## ๐Ÿš€ Installation

```bash
# Install from PyPI (recommended)
pip install lrdbenchmark

# Or install from GitHub
pip install git+https://github.com/dave2k77/LRDBenchmark.git

# Or clone and install in development mode
git clone https://github.com/dave2k77/LRDBenchmark.git
cd LRDBenchmark
pip install -e .
```

### Key Features

- **๐Ÿ”ฌ Comprehensive Classical Estimators**: 7 adaptive estimators with automatic optimization framework selection
- **๐Ÿค– Production-Ready ML Models**: SVR, Gradient Boosting, Random Forest with 50-70 engineered features
- **๐Ÿง  Neural Network Factory**: 8 architectures (FFN, CNN, LSTM, GRU, Transformer, ResNet, etc.) with train-once, apply-many workflows
- **๐Ÿง  Intelligent Backend System**: Automatic GPU/JAX, CPU/Numba, or NumPy selection based on data characteristics
- **๐Ÿ›ก๏ธ Robust Error Handling**: Adaptive parameter selection and progressive fallback mechanisms
- **๐Ÿงช EEG Contamination Testing**: 8 realistic artifact scenarios for biomedical applications
- **๐Ÿ“Š Mathematical Verification**: All estimators verified against theoretical foundations
- **โšก High Performance**: GPU-accelerated implementations with JAX and Numba backends
- **๐Ÿ”„ Reproducible**: Complete code, data, and results available
- **๐Ÿ“ˆ Research Ready**: Publication-quality results with comprehensive testing
- **๐Ÿ† Three-Way Comparison**: Classical, ML, and Neural Network approaches benchmarked

## ๐Ÿ† Latest Results

Our comprehensive benchmark of **45 test cases** comparing Classical vs ML vs Neural Networks reveals:

- **Best Individual Performance**: RandomForest (ML) with 0.0233 MAE
- **Neural Network Excellence**: Consistent high performance (0.0410-0.0814 MAE) with ultra-fast inference (0.0ms)
- **Speed-Accuracy Trade-offs**: Neural networks provide excellent balance between accuracy and speed
- **9 Estimators Tested**: 4 Classical, 3 ML, 2 Neural Network approaches
- **91.11% Overall Success Rate**: Robust performance across all approaches
- **Production-Ready Systems**: Train-once, apply-many workflows with model persistence

## ๐Ÿ“Š Performance Summary

| Method | Type | Mean Error | Execution Time | Success Rate |
|--------|------|------------|----------------|--------------|
| **RandomForest** | **ML** | **0.0233** | 0.0ms | 100% |
| **GradientBoosting** | **ML** | **0.0404** | 0.0ms | 100% |
| **SVR** | **ML** | **0.0440** | 0.0ms | 100% |
| **CNN** | **Neural Network** | **0.0698** | 0.0ms | 100% |
| **Feedforward** | **Neural Network** | **0.0814** | 0.0ms | 100% |
| **R/S** | **Classical** | **0.0841** | 271.1ms | 100% |
| **Whittle** | **Classical** | **0.1800** | 0.7ms | 100% |
| **GPH** | **Classical** | **0.2746** | 3.4ms | 80% |
| **DFA** | **Classical** | **0.4735** | 22.3ms | 40% |

## ๐Ÿš€ Quick Start

### Installation

```bash
# Clone the repository
git clone https://github.com/yourusername/LRDBenchmark.git
cd LRDBenchmark

# Install dependencies
pip install -r requirements.txt

# Install package in development mode
pip install -e .
```

### Basic Usage

```python
from lrdbenchmark.models.data_models.fbm.fbm_model import FractionalBrownianMotion
from lrdbenchmark.analysis.temporal.rs.rs_estimator import RSEstimator

# Generate synthetic data
fbm = FractionalBrownianMotion(hurst=0.8, length=1000)
data = fbm.generate()

# Estimate Hurst parameter
rs_estimator = RSEstimator()
hurst_estimate = rs_estimator.estimate(data)

print(f"True Hurst: 0.8, Estimated: {hurst_estimate:.3f}")
```

### Machine Learning Usage

```python
from lrdbenchmark.analysis.machine_learning.svr_estimator import SVREstimator
from lrdbenchmark.analysis.machine_learning.gradient_boosting_estimator import GradientBoostingEstimator
from lrdbenchmark.analysis.machine_learning.random_forest_estimator import RandomForestEstimator
import numpy as np

# Generate training data
X_train = np.random.randn(100, 500)  # 100 samples of length 500
y_train = np.random.uniform(0.2, 0.8, 100)  # True Hurst parameters

# Train ML models
svr = SVREstimator(kernel='rbf', C=1.0)
svr.train(X_train, y_train)

gb = GradientBoostingEstimator(n_estimators=50, learning_rate=0.1)
gb.train(X_train, y_train)

rf = RandomForestEstimator(n_estimators=50, max_depth=5)
rf.train(X_train, y_train)

# Make predictions on new data
new_data = np.random.randn(1, 500)
svr_pred = svr.predict(new_data)
gb_pred = gb.predict(new_data)
rf_pred = rf.predict(new_data)

print(f"SVR: {svr_pred:.3f}, Gradient Boosting: {gb_pred:.3f}, Random Forest: {rf_pred:.3f}")
```

### Neural Network Usage

```python
from lrdbenchmark.analysis.machine_learning.neural_network_factory import (
    NeuralNetworkFactory, NNArchitecture, NNConfig, create_all_benchmark_networks
)
import numpy as np

# Create neural network factory
factory = NeuralNetworkFactory()

# Create a specific network
config = NNConfig(
    architecture=NNArchitecture.TRANSFORMER,
    input_length=500,
    hidden_dims=[64, 32],
    learning_rate=0.001,
    epochs=50
)
network = factory.create_network(config)

# Generate training data
X_train = np.random.randn(100, 500)  # 100 samples of length 500
y_train = np.random.uniform(0.2, 0.8, 100)  # True Hurst parameters

# Train the network (train-once, apply-many workflow)
history = network.train_model(X_train, y_train)

# Make predictions on new data
new_data = np.random.randn(1, 500)
prediction = network.predict(new_data)

print(f"Neural Network Prediction: {prediction[0]:.3f}")

# Create all benchmark networks
all_networks = create_all_benchmark_networks(input_length=500)
for name, network in all_networks.items():
    print(f"Created {name} network")
```

### Run Three-Way Benchmark

```bash
# Run comprehensive three-way benchmark (Classical vs ML vs Neural Networks)
python comprehensive_classical_ml_nn_benchmark.py

# Test neural network factory
python test_neural_network_factory.py
```

### Run ML vs Classical Benchmark

```bash
# Run comprehensive ML vs Classical benchmark
python final_ml_vs_classical_benchmark.py

# Run simple ML benchmark
python simple_ml_vs_classical_benchmark.py

# Test individual ML estimators
python test_proper_ml_estimators.py
```

### Run Complete Benchmark

```bash
# Run comprehensive benchmark
python comprehensive_all_estimators_benchmark.py

# Analyze results
python analyze_all_estimators_results.py

# Generate publication figures
python generate_publication_figures.py
```

## ๐Ÿ“ Repository Structure

```
LRDBenchmark/
โ”œโ”€โ”€ lrdbenchmark/                 # Main package
โ”‚   โ”œโ”€โ”€ models/                   # Data models and estimators
โ”‚   โ”‚   โ”œโ”€โ”€ data_models/         # Stochastic processes (FBM, FGN, ARFIMA, MRW)
โ”‚   โ”‚   โ””โ”€โ”€ estimators/          # Base estimator classes
โ”‚   โ””โ”€โ”€ analysis/                # Analysis modules
โ”‚       โ”œโ”€โ”€ temporal/            # Temporal estimators (DFA, R/S, DMA, Higuchi)
โ”‚       โ”œโ”€โ”€ spectral/            # Spectral estimators (Whittle, GPH, Periodogram)
โ”‚       โ”œโ”€โ”€ wavelet/             # Wavelet estimators (CWT, Wavelet Variance)
โ”‚       โ”œโ”€โ”€ multifractal/        # Multifractal estimators (MFDFA, Wavelet Leaders)
โ”‚       โ””โ”€โ”€ machine_learning/    # ML and neural network estimators
โ”œโ”€โ”€ tests/                       # Unit tests
โ”œโ”€โ”€ benchmarks/                  # Benchmark scripts
โ”œโ”€โ”€ results/                     # Benchmark results
โ”œโ”€โ”€ figures/                     # Generated figures
โ”œโ”€โ”€ docs/                        # Documentation
โ”œโ”€โ”€ manuscript.tex               # LaTeX manuscript
โ”œโ”€โ”€ references.bib               # Bibliography
โ””โ”€โ”€ supplementary_materials.md   # Supplementary materials
```

## ๐Ÿ”ฌ Implemented Estimators

### Neural Network Estimators (8) - **NEW!**
- **Feedforward**: Basic fully connected layers (0.1946 MAE, 0.0ms)
- **Convolutional**: 1D CNN for time series (0.1844 MAE, 0.0ms)
- **LSTM**: Long short-term memory (0.1833 MAE, 0.3ms)
- **Bidirectional LSTM**: Bidirectional recurrent processing (0.1834 MAE, 0.3ms)
- **GRU**: Gated recurrent unit (0.1849 MAE, 0.2ms)
- **Transformer**: Self-attention mechanism (0.1802 MAE, 0.7ms) - **Best NN**
- **ResNet**: Residual connections (0.1859 MAE, 0.1ms)
- **Hybrid CNN-LSTM**: Combined architectures (in development)

### Machine Learning Estimators (3)
- **SVR**: Support Vector Regression with 50+ engineered features (0.1995 MAE, 0.6ms)
- **Gradient Boosting**: High accuracy with feature importance (training issues resolved)
- **Random Forest**: Ensemble method with feature selection (training issues resolved)

### Classical Estimators (7)
- **R/S**: Rescaled Range Analysis (0.0997 MAE, 229.6ms) - **Best Overall**
- **Whittle**: Maximum likelihood spectral estimation (0.2400 MAE, 0.5ms)
- **Periodogram**: Spectral density estimation (0.2551 MAE, 3.0ms)
- **GPH**: Geweke-Porter-Hudak estimator (0.2676 MAE, 5.1ms)
- **DFA**: Detrended Fluctuation Analysis (0.3968 MAE, 14.5ms)
- **DMA**: Detrending Moving Average (0.4468 MAE, 1.1ms)
- **Higuchi**: Fractal dimension estimation (0.4495 MAE, 14.4ms)

## ๐Ÿ“Š Data Models

### Fractional Brownian Motion (FBM)
Continuous-time Gaussian process with self-similarity property.

### Fractional Gaussian Noise (FGN)
Increment process of FBM with long-range dependence.

### ARFIMA Process
AutoRegressive Fractionally Integrated Moving Average with fractional differencing.

### Multifractal Random Walk (MRW)
Incorporates multifractal properties through cascade processes.

## ๐Ÿ“ˆ Results and Visualizations

The framework generates comprehensive visualizations:

- **Figure 1**: Category performance comparison
- **Figure 2**: Individual estimator analysis
- **Figure 3**: Contamination effects
- **Figure 4**: Data length effects
- **Figure 5**: Comprehensive summary and recommendations

All figures are publication-ready with high resolution (300 DPI) and professional styling.

## ๐Ÿงช Experimental Design

### Factors
- **Data Models**: 4 levels (FBM, FGN, ARFIMA, MRW)
- **Estimators**: 12 levels (all implemented estimators)
- **Hurst Parameters**: 5 levels (0.6, 0.7, 0.8, 0.9, 0.95)
- **Data Lengths**: 2 levels (1000, 2000 points)
- **Contamination**: 3 levels (0%, 10%, 20% additive noise)
- **Replications**: 10 per condition

### Metrics
- **Accuracy**: Mean absolute error, relative error
- **Efficiency**: Execution time, memory usage
- **Robustness**: Performance under contamination
- **Reliability**: Success rate, consistency

## ๐Ÿ”ง Extending the Framework

### Adding New Estimators

```python
from lrdbenchmark.models.estimators.base_estimator import BaseEstimator

class MyEstimator(BaseEstimator):
    def __init__(self):
        super().__init__()
        self.name = "MyEstimator"
        self.category = "Custom"
    
    def estimate(self, data):
        # Implement your estimation logic
        return hurst_estimate
```

### Adding New Data Models

```python
from lrdbenchmark.models.data_models.base_data_model import BaseDataModel

class MyDataModel(BaseDataModel):
    def __init__(self, hurst, length, **kwargs):
        super().__init__(hurst, length)
        self.name = "MyDataModel"
    
    def generate(self):
        # Implement your data generation logic
        return data
```

## ๐Ÿ“š Documentation

- **Manuscript**: `manuscript.tex` - Complete research paper
- **Supplementary Materials**: `supplementary_materials.md` - Detailed analysis
- **API Documentation**: Available in `docs/` directory
- **Examples**: See `examples/` directory for usage examples

## ๐Ÿค Contributing

We welcome contributions! Please see our [Contributing Guidelines](CONTRIBUTING.md) for details.

### Development Setup

```bash
# Install development dependencies
pip install -r requirements-dev.txt

# Run tests
pytest tests/

# Run linting
black lrdbenchmark/
isort lrdbenchmark/
flake8 lrdbenchmark/
```

## ๐Ÿ“„ Citation

If you use LRDBenchmark in your research, please cite:

```bibtex
@article{yourname2024,
  title={LRDBenchmark: A Comprehensive and Reproducible Framework for Long-Range Dependence Estimation},
  author={Your Name},
  journal={Journal Name},
  year={2024},
  publisher={Publisher}
}
```

## ๐Ÿ“ž Contact

- **Email**: your.email@institution.edu
- **Issues**: [GitHub Issues](https://github.com/yourusername/LRDBenchmark/issues)
- **Discussions**: [GitHub Discussions](https://github.com/yourusername/LRDBenchmark/discussions)

## ๐Ÿ“œ License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## ๐Ÿ™ Acknowledgments

We thank the developers of the open-source libraries that made this work possible:
- NumPy, SciPy, scikit-learn for scientific computing
- PyTorch for neural network implementations
- Matplotlib, Seaborn for visualization
- And many others listed in `requirements.txt`

## ๐Ÿ”— Related Work

- [Long-Range Dependence in Time Series](https://example.com)
- [Machine Learning for Time Series Analysis](https://example.com)
- [Benchmarking Statistical Methods](https://example.com)

---

**LRDBenchmark** - Setting the standard for Long-Range Dependence estimation benchmarking.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "lrdbenchmark",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "long-range dependence, hurst parameter, time series analysis, benchmarking, machine learning, neural networks, reproducible research, fractional brownian motion, wavelet analysis, spectral analysis",
    "author": null,
    "author_email": "LRDBench Development Team <lrdbench@example.com>",
    "download_url": "https://files.pythonhosted.org/packages/09/7c/f61f74a4a47c6ffac48e7872a2264feea87e159bce68949feff35a92e6f3/lrdbenchmark-2.1.0.tar.gz",
    "platform": null,
    "description": "# LRDBenchmark: A Comprehensive Framework for Long-Range Dependence Estimation\n\n[![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![DOI](https://img.shields.io/badge/DOI-10.1000/xyz-blue.svg)](https://doi.org/10.1000/xyz)\n\nA comprehensive and reproducible framework for benchmarking Long-Range Dependence (LRD) estimation methods with intelligent optimization backend, comprehensive adaptive classical estimators, production-ready machine learning models, and neural network factory.\n\n## \ud83c\udfaf Overview\n\nLRDBenchmark provides a standardized platform for evaluating and comparing LRD estimators with automatic framework selection (GPU/JAX, CPU/Numba, NumPy), robust error handling, and realistic contamination testing. Our latest comprehensive benchmark shows **RandomForest (ML) achieves the best performance** (0.0233 MAE) while **Neural Networks provide excellent speed-accuracy trade-offs** (0.0410-0.0814 MAE, 0.0ms execution time).\n\n## \ud83d\ude80 Installation\n\n```bash\n# Install from PyPI (recommended)\npip install lrdbenchmark\n\n# Or install from GitHub\npip install git+https://github.com/dave2k77/LRDBenchmark.git\n\n# Or clone and install in development mode\ngit clone https://github.com/dave2k77/LRDBenchmark.git\ncd LRDBenchmark\npip install -e .\n```\n\n### Key Features\n\n- **\ud83d\udd2c Comprehensive Classical Estimators**: 7 adaptive estimators with automatic optimization framework selection\n- **\ud83e\udd16 Production-Ready ML Models**: SVR, Gradient Boosting, Random Forest with 50-70 engineered features\n- **\ud83e\udde0 Neural Network Factory**: 8 architectures (FFN, CNN, LSTM, GRU, Transformer, ResNet, etc.) with train-once, apply-many workflows\n- **\ud83e\udde0 Intelligent Backend System**: Automatic GPU/JAX, CPU/Numba, or NumPy selection based on data characteristics\n- **\ud83d\udee1\ufe0f Robust Error Handling**: Adaptive parameter selection and progressive fallback mechanisms\n- **\ud83e\uddea EEG Contamination Testing**: 8 realistic artifact scenarios for biomedical applications\n- **\ud83d\udcca Mathematical Verification**: All estimators verified against theoretical foundations\n- **\u26a1 High Performance**: GPU-accelerated implementations with JAX and Numba backends\n- **\ud83d\udd04 Reproducible**: Complete code, data, and results available\n- **\ud83d\udcc8 Research Ready**: Publication-quality results with comprehensive testing\n- **\ud83c\udfc6 Three-Way Comparison**: Classical, ML, and Neural Network approaches benchmarked\n\n## \ud83c\udfc6 Latest Results\n\nOur comprehensive benchmark of **45 test cases** comparing Classical vs ML vs Neural Networks reveals:\n\n- **Best Individual Performance**: RandomForest (ML) with 0.0233 MAE\n- **Neural Network Excellence**: Consistent high performance (0.0410-0.0814 MAE) with ultra-fast inference (0.0ms)\n- **Speed-Accuracy Trade-offs**: Neural networks provide excellent balance between accuracy and speed\n- **9 Estimators Tested**: 4 Classical, 3 ML, 2 Neural Network approaches\n- **91.11% Overall Success Rate**: Robust performance across all approaches\n- **Production-Ready Systems**: Train-once, apply-many workflows with model persistence\n\n## \ud83d\udcca Performance Summary\n\n| Method | Type | Mean Error | Execution Time | Success Rate |\n|--------|------|------------|----------------|--------------|\n| **RandomForest** | **ML** | **0.0233** | 0.0ms | 100% |\n| **GradientBoosting** | **ML** | **0.0404** | 0.0ms | 100% |\n| **SVR** | **ML** | **0.0440** | 0.0ms | 100% |\n| **CNN** | **Neural Network** | **0.0698** | 0.0ms | 100% |\n| **Feedforward** | **Neural Network** | **0.0814** | 0.0ms | 100% |\n| **R/S** | **Classical** | **0.0841** | 271.1ms | 100% |\n| **Whittle** | **Classical** | **0.1800** | 0.7ms | 100% |\n| **GPH** | **Classical** | **0.2746** | 3.4ms | 80% |\n| **DFA** | **Classical** | **0.4735** | 22.3ms | 40% |\n\n## \ud83d\ude80 Quick Start\n\n### Installation\n\n```bash\n# Clone the repository\ngit clone https://github.com/yourusername/LRDBenchmark.git\ncd LRDBenchmark\n\n# Install dependencies\npip install -r requirements.txt\n\n# Install package in development mode\npip install -e .\n```\n\n### Basic Usage\n\n```python\nfrom lrdbenchmark.models.data_models.fbm.fbm_model import FractionalBrownianMotion\nfrom lrdbenchmark.analysis.temporal.rs.rs_estimator import RSEstimator\n\n# Generate synthetic data\nfbm = FractionalBrownianMotion(hurst=0.8, length=1000)\ndata = fbm.generate()\n\n# Estimate Hurst parameter\nrs_estimator = RSEstimator()\nhurst_estimate = rs_estimator.estimate(data)\n\nprint(f\"True Hurst: 0.8, Estimated: {hurst_estimate:.3f}\")\n```\n\n### Machine Learning Usage\n\n```python\nfrom lrdbenchmark.analysis.machine_learning.svr_estimator import SVREstimator\nfrom lrdbenchmark.analysis.machine_learning.gradient_boosting_estimator import GradientBoostingEstimator\nfrom lrdbenchmark.analysis.machine_learning.random_forest_estimator import RandomForestEstimator\nimport numpy as np\n\n# Generate training data\nX_train = np.random.randn(100, 500)  # 100 samples of length 500\ny_train = np.random.uniform(0.2, 0.8, 100)  # True Hurst parameters\n\n# Train ML models\nsvr = SVREstimator(kernel='rbf', C=1.0)\nsvr.train(X_train, y_train)\n\ngb = GradientBoostingEstimator(n_estimators=50, learning_rate=0.1)\ngb.train(X_train, y_train)\n\nrf = RandomForestEstimator(n_estimators=50, max_depth=5)\nrf.train(X_train, y_train)\n\n# Make predictions on new data\nnew_data = np.random.randn(1, 500)\nsvr_pred = svr.predict(new_data)\ngb_pred = gb.predict(new_data)\nrf_pred = rf.predict(new_data)\n\nprint(f\"SVR: {svr_pred:.3f}, Gradient Boosting: {gb_pred:.3f}, Random Forest: {rf_pred:.3f}\")\n```\n\n### Neural Network Usage\n\n```python\nfrom lrdbenchmark.analysis.machine_learning.neural_network_factory import (\n    NeuralNetworkFactory, NNArchitecture, NNConfig, create_all_benchmark_networks\n)\nimport numpy as np\n\n# Create neural network factory\nfactory = NeuralNetworkFactory()\n\n# Create a specific network\nconfig = NNConfig(\n    architecture=NNArchitecture.TRANSFORMER,\n    input_length=500,\n    hidden_dims=[64, 32],\n    learning_rate=0.001,\n    epochs=50\n)\nnetwork = factory.create_network(config)\n\n# Generate training data\nX_train = np.random.randn(100, 500)  # 100 samples of length 500\ny_train = np.random.uniform(0.2, 0.8, 100)  # True Hurst parameters\n\n# Train the network (train-once, apply-many workflow)\nhistory = network.train_model(X_train, y_train)\n\n# Make predictions on new data\nnew_data = np.random.randn(1, 500)\nprediction = network.predict(new_data)\n\nprint(f\"Neural Network Prediction: {prediction[0]:.3f}\")\n\n# Create all benchmark networks\nall_networks = create_all_benchmark_networks(input_length=500)\nfor name, network in all_networks.items():\n    print(f\"Created {name} network\")\n```\n\n### Run Three-Way Benchmark\n\n```bash\n# Run comprehensive three-way benchmark (Classical vs ML vs Neural Networks)\npython comprehensive_classical_ml_nn_benchmark.py\n\n# Test neural network factory\npython test_neural_network_factory.py\n```\n\n### Run ML vs Classical Benchmark\n\n```bash\n# Run comprehensive ML vs Classical benchmark\npython final_ml_vs_classical_benchmark.py\n\n# Run simple ML benchmark\npython simple_ml_vs_classical_benchmark.py\n\n# Test individual ML estimators\npython test_proper_ml_estimators.py\n```\n\n### Run Complete Benchmark\n\n```bash\n# Run comprehensive benchmark\npython comprehensive_all_estimators_benchmark.py\n\n# Analyze results\npython analyze_all_estimators_results.py\n\n# Generate publication figures\npython generate_publication_figures.py\n```\n\n## \ud83d\udcc1 Repository Structure\n\n```\nLRDBenchmark/\n\u251c\u2500\u2500 lrdbenchmark/                 # Main package\n\u2502   \u251c\u2500\u2500 models/                   # Data models and estimators\n\u2502   \u2502   \u251c\u2500\u2500 data_models/         # Stochastic processes (FBM, FGN, ARFIMA, MRW)\n\u2502   \u2502   \u2514\u2500\u2500 estimators/          # Base estimator classes\n\u2502   \u2514\u2500\u2500 analysis/                # Analysis modules\n\u2502       \u251c\u2500\u2500 temporal/            # Temporal estimators (DFA, R/S, DMA, Higuchi)\n\u2502       \u251c\u2500\u2500 spectral/            # Spectral estimators (Whittle, GPH, Periodogram)\n\u2502       \u251c\u2500\u2500 wavelet/             # Wavelet estimators (CWT, Wavelet Variance)\n\u2502       \u251c\u2500\u2500 multifractal/        # Multifractal estimators (MFDFA, Wavelet Leaders)\n\u2502       \u2514\u2500\u2500 machine_learning/    # ML and neural network estimators\n\u251c\u2500\u2500 tests/                       # Unit tests\n\u251c\u2500\u2500 benchmarks/                  # Benchmark scripts\n\u251c\u2500\u2500 results/                     # Benchmark results\n\u251c\u2500\u2500 figures/                     # Generated figures\n\u251c\u2500\u2500 docs/                        # Documentation\n\u251c\u2500\u2500 manuscript.tex               # LaTeX manuscript\n\u251c\u2500\u2500 references.bib               # Bibliography\n\u2514\u2500\u2500 supplementary_materials.md   # Supplementary materials\n```\n\n## \ud83d\udd2c Implemented Estimators\n\n### Neural Network Estimators (8) - **NEW!**\n- **Feedforward**: Basic fully connected layers (0.1946 MAE, 0.0ms)\n- **Convolutional**: 1D CNN for time series (0.1844 MAE, 0.0ms)\n- **LSTM**: Long short-term memory (0.1833 MAE, 0.3ms)\n- **Bidirectional LSTM**: Bidirectional recurrent processing (0.1834 MAE, 0.3ms)\n- **GRU**: Gated recurrent unit (0.1849 MAE, 0.2ms)\n- **Transformer**: Self-attention mechanism (0.1802 MAE, 0.7ms) - **Best NN**\n- **ResNet**: Residual connections (0.1859 MAE, 0.1ms)\n- **Hybrid CNN-LSTM**: Combined architectures (in development)\n\n### Machine Learning Estimators (3)\n- **SVR**: Support Vector Regression with 50+ engineered features (0.1995 MAE, 0.6ms)\n- **Gradient Boosting**: High accuracy with feature importance (training issues resolved)\n- **Random Forest**: Ensemble method with feature selection (training issues resolved)\n\n### Classical Estimators (7)\n- **R/S**: Rescaled Range Analysis (0.0997 MAE, 229.6ms) - **Best Overall**\n- **Whittle**: Maximum likelihood spectral estimation (0.2400 MAE, 0.5ms)\n- **Periodogram**: Spectral density estimation (0.2551 MAE, 3.0ms)\n- **GPH**: Geweke-Porter-Hudak estimator (0.2676 MAE, 5.1ms)\n- **DFA**: Detrended Fluctuation Analysis (0.3968 MAE, 14.5ms)\n- **DMA**: Detrending Moving Average (0.4468 MAE, 1.1ms)\n- **Higuchi**: Fractal dimension estimation (0.4495 MAE, 14.4ms)\n\n## \ud83d\udcca Data Models\n\n### Fractional Brownian Motion (FBM)\nContinuous-time Gaussian process with self-similarity property.\n\n### Fractional Gaussian Noise (FGN)\nIncrement process of FBM with long-range dependence.\n\n### ARFIMA Process\nAutoRegressive Fractionally Integrated Moving Average with fractional differencing.\n\n### Multifractal Random Walk (MRW)\nIncorporates multifractal properties through cascade processes.\n\n## \ud83d\udcc8 Results and Visualizations\n\nThe framework generates comprehensive visualizations:\n\n- **Figure 1**: Category performance comparison\n- **Figure 2**: Individual estimator analysis\n- **Figure 3**: Contamination effects\n- **Figure 4**: Data length effects\n- **Figure 5**: Comprehensive summary and recommendations\n\nAll figures are publication-ready with high resolution (300 DPI) and professional styling.\n\n## \ud83e\uddea Experimental Design\n\n### Factors\n- **Data Models**: 4 levels (FBM, FGN, ARFIMA, MRW)\n- **Estimators**: 12 levels (all implemented estimators)\n- **Hurst Parameters**: 5 levels (0.6, 0.7, 0.8, 0.9, 0.95)\n- **Data Lengths**: 2 levels (1000, 2000 points)\n- **Contamination**: 3 levels (0%, 10%, 20% additive noise)\n- **Replications**: 10 per condition\n\n### Metrics\n- **Accuracy**: Mean absolute error, relative error\n- **Efficiency**: Execution time, memory usage\n- **Robustness**: Performance under contamination\n- **Reliability**: Success rate, consistency\n\n## \ud83d\udd27 Extending the Framework\n\n### Adding New Estimators\n\n```python\nfrom lrdbenchmark.models.estimators.base_estimator import BaseEstimator\n\nclass MyEstimator(BaseEstimator):\n    def __init__(self):\n        super().__init__()\n        self.name = \"MyEstimator\"\n        self.category = \"Custom\"\n    \n    def estimate(self, data):\n        # Implement your estimation logic\n        return hurst_estimate\n```\n\n### Adding New Data Models\n\n```python\nfrom lrdbenchmark.models.data_models.base_data_model import BaseDataModel\n\nclass MyDataModel(BaseDataModel):\n    def __init__(self, hurst, length, **kwargs):\n        super().__init__(hurst, length)\n        self.name = \"MyDataModel\"\n    \n    def generate(self):\n        # Implement your data generation logic\n        return data\n```\n\n## \ud83d\udcda Documentation\n\n- **Manuscript**: `manuscript.tex` - Complete research paper\n- **Supplementary Materials**: `supplementary_materials.md` - Detailed analysis\n- **API Documentation**: Available in `docs/` directory\n- **Examples**: See `examples/` directory for usage examples\n\n## \ud83e\udd1d Contributing\n\nWe welcome contributions! Please see our [Contributing Guidelines](CONTRIBUTING.md) for details.\n\n### Development Setup\n\n```bash\n# Install development dependencies\npip install -r requirements-dev.txt\n\n# Run tests\npytest tests/\n\n# Run linting\nblack lrdbenchmark/\nisort lrdbenchmark/\nflake8 lrdbenchmark/\n```\n\n## \ud83d\udcc4 Citation\n\nIf you use LRDBenchmark in your research, please cite:\n\n```bibtex\n@article{yourname2024,\n  title={LRDBenchmark: A Comprehensive and Reproducible Framework for Long-Range Dependence Estimation},\n  author={Your Name},\n  journal={Journal Name},\n  year={2024},\n  publisher={Publisher}\n}\n```\n\n## \ud83d\udcde Contact\n\n- **Email**: your.email@institution.edu\n- **Issues**: [GitHub Issues](https://github.com/yourusername/LRDBenchmark/issues)\n- **Discussions**: [GitHub Discussions](https://github.com/yourusername/LRDBenchmark/discussions)\n\n## \ud83d\udcdc License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## \ud83d\ude4f Acknowledgments\n\nWe thank the developers of the open-source libraries that made this work possible:\n- NumPy, SciPy, scikit-learn for scientific computing\n- PyTorch for neural network implementations\n- Matplotlib, Seaborn for visualization\n- And many others listed in `requirements.txt`\n\n## \ud83d\udd17 Related Work\n\n- [Long-Range Dependence in Time Series](https://example.com)\n- [Machine Learning for Time Series Analysis](https://example.com)\n- [Benchmarking Statistical Methods](https://example.com)\n\n---\n\n**LRDBenchmark** - Setting the standard for Long-Range Dependence estimation benchmarking.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Comprehensive Long-Range Dependence Benchmarking Framework with Neural Network Factory - Three-Way Comparison: Classical vs ML vs Neural Networks",
    "version": "2.1.0",
    "project_urls": {
        "Documentation": "https://lrdbenchmark.readthedocs.io/",
        "Download": "https://pypi.org/project/lrdbenchmark/",
        "Homepage": "https://github.com/dave2k77/LRDBenchmark",
        "Issues": "https://github.com/dave2k77/LRDBenchmark/issues",
        "Repository": "https://github.com/dave2k77/LRDBenchmark.git",
        "Source": "https://github.com/dave2k77/LRDBenchmark"
    },
    "split_keywords": [
        "long-range dependence",
        " hurst parameter",
        " time series analysis",
        " benchmarking",
        " machine learning",
        " neural networks",
        " reproducible research",
        " fractional brownian motion",
        " wavelet analysis",
        " spectral analysis"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a8da718b87baf92ee23b03c478cb11669d0b47aff8f235279a9e9838920c1d29",
                "md5": "8bc64dc5cb9a7a44758a0a7fce507a56",
                "sha256": "c55b10075230ea4a49a17b094dcffc622524afa9c43d4d9fe8df3bc0c13fc1e3"
            },
            "downloads": -1,
            "filename": "lrdbenchmark-2.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "8bc64dc5cb9a7a44758a0a7fce507a56",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 427177,
            "upload_time": "2025-09-06T16:03:01",
            "upload_time_iso_8601": "2025-09-06T16:03:01.155835Z",
            "url": "https://files.pythonhosted.org/packages/a8/da/718b87baf92ee23b03c478cb11669d0b47aff8f235279a9e9838920c1d29/lrdbenchmark-2.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "097cf61f74a4a47c6ffac48e7872a2264feea87e159bce68949feff35a92e6f3",
                "md5": "cfa0a0d52a27c0af89e91064eccc28ae",
                "sha256": "055ced2f36369b5b17927e9f15cb0382c1a7c5a1fb258c1d455aac4df3c977e5"
            },
            "downloads": -1,
            "filename": "lrdbenchmark-2.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "cfa0a0d52a27c0af89e91064eccc28ae",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 15759561,
            "upload_time": "2025-09-06T16:03:04",
            "upload_time_iso_8601": "2025-09-06T16:03:04.294509Z",
            "url": "https://files.pythonhosted.org/packages/09/7c/f61f74a4a47c6ffac48e7872a2264feea87e159bce68949feff35a92e6f3/lrdbenchmark-2.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-09-06 16:03:04",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "dave2k77",
    "github_project": "LRDBenchmark",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "numpy",
            "specs": [
                [
                    ">=",
                    "1.21.0"
                ]
            ]
        },
        {
            "name": "scipy",
            "specs": [
                [
                    ">=",
                    "1.7.0"
                ]
            ]
        },
        {
            "name": "scikit-learn",
            "specs": [
                [
                    ">=",
                    "1.0.0"
                ]
            ]
        },
        {
            "name": "pandas",
            "specs": [
                [
                    ">=",
                    "1.3.0"
                ]
            ]
        },
        {
            "name": "torch",
            "specs": [
                [
                    ">=",
                    "1.9.0"
                ]
            ]
        },
        {
            "name": "jax",
            "specs": [
                [
                    ">=",
                    "0.3.0"
                ]
            ]
        },
        {
            "name": "jaxlib",
            "specs": [
                [
                    ">=",
                    "0.3.0"
                ]
            ]
        },
        {
            "name": "numba",
            "specs": [
                [
                    ">=",
                    "0.56.0"
                ]
            ]
        },
        {
            "name": "pywavelets",
            "specs": [
                [
                    ">=",
                    "1.3.0"
                ]
            ]
        },
        {
            "name": "matplotlib",
            "specs": [
                [
                    ">=",
                    "3.5.0"
                ]
            ]
        },
        {
            "name": "seaborn",
            "specs": [
                [
                    ">=",
                    "0.11.0"
                ]
            ]
        },
        {
            "name": "psutil",
            "specs": [
                [
                    ">=",
                    "5.8.0"
                ]
            ]
        },
        {
            "name": "networkx",
            "specs": [
                [
                    ">=",
                    "2.6.0"
                ]
            ]
        },
        {
            "name": "optuna",
            "specs": [
                [
                    ">=",
                    "3.0.0"
                ]
            ]
        },
        {
            "name": "numpyro",
            "specs": [
                [
                    ">=",
                    "0.12.0"
                ]
            ]
        }
    ],
    "lcname": "lrdbenchmark"
}
        
Elapsed time: 1.15573s