Metadata-Version: 2.4
Name: deep-nonlinear-causality
Version: 1.0.0
Summary: Multivariate Nonlinear Granger Causality Detection with Deep Learning and Machine Learning
Home-page: https://github.com/ABDULLAH-AL-KHATIB
Author: Dr. Abdullah Mohammad Ghazi Al khatib
Author-email: genius.275@hotmail.com
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy>=1.20.0
Requires-Dist: scipy>=1.7.0
Requires-Dist: pandas>=1.3.0
Requires-Dist: scikit-learn>=1.0.0
Provides-Extra: all
Requires-Dist: tensorflow>=2.6.0; extra == "all"
Requires-Dist: xgboost>=1.5.0; extra == "all"
Requires-Dist: lightgbm>=3.3.0; extra == "all"
Requires-Dist: pytest>=7.0.0; extra == "all"
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license-file
Dynamic: provides-extra
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# Deep Nonlinear Causality (deepcausality)

**Author**: Dr. Abdullah Mohammad Ghazi Al khatib  
**Affiliation**: Al Sham Private University  
**Email**: genius.275@hotmail.com  
**GitHub**: https://github.com/ABDULLAH-AL-KHATIB  
**Release Date**: 17-08-2026  

---

## Overview
A Python framework for discovering multivariate, non-linear Granger causality and conditional causality in complex dynamical systems using Deep Learning (LSTM, GRU, CNN, MLP) and Machine Learning (RF, XGBoost, LightGBM, Kernel Ridge).

## Installation
```bash
pip install deep-nonlinear-causality[all]
```

## Quick Start
```python
import numpy as np
from deepcausality import CausalityTest

n = 500
X = np.random.randn(n, 2)
Y = np.zeros(n)
for t in range(2, n):
    Y[t] = 0.4 * Y[t-1] + 0.3 * (X[t-1, 0]**2) + np.random.normal(0, 0.05)

engine = CausalityTest(random_state=42)
res = engine.run_test(Y, X, lag=2, model_type='mlp', n_permutations=50)
print(f'Is Causal: {res["is_causal"]}, p-value: {res["p_value"]:.4f}')
```

## License
MIT License. Copyright (c) 2026 Dr. Abdullah Mohammad Ghazi Al khatib.
