# LRDBenchmark: A Comprehensive Framework for Long-Range Dependence Estimation
[](https://www.python.org/downloads/)
[](https://opensource.org/licenses/MIT)
[](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[](https://www.python.org/downloads/)\n[](https://opensource.org/licenses/MIT)\n[](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"
}