Top pick: Reduced TE (Kirkley 2025) (author GitHub (TBD)). Fills the gap: Causal direction — which the production baseline (Pearson + Spearman + h_norm + Tier-2 MI-vs-target) cannot detect.
Lane = how usable the metric is today. Top lane = production-baseline duplicates (Pearson, Spearman). Below = permissive FOSS / GPL / unmaintained / code-released-but-not-packaged / no-FOSS. Per-circle text = first 3 letters of language (Pyt / R / Jav).
| Metric | Library | License | Lang | Maint | Complexity | Param-free? | URL |
|---|---|---|---|---|---|---|---|
| Reduced Transfer Entropy (Kirkley 2025) | Author GitHub (not packaged) | TBD | Python | ⚠️ | O(N) per pair | no | ↗ |
| Active Information Storage | IDTxl / JIDT | GPLv3 | Python / Java | ✅ | O(N log N) | yes | ↗ |
| CRQA | crqa / PyRQA | GPL / Apache-2 | R / Python | ✅ | O(N^2) | yes | ↗ |
| IDTxl | IDTxl | GPLv3 | Python | ✅ | varies | yes | ↗ |
| JIDT (KSG + many estimators) | jidt | GPLv3 | Java+Python | ✅ | varies | yes | ↗ |
| LPCMCI | tigramite | GPLv3 | Python | ✅ | higher than PCMCI | yes | ↗ |
| PCMCI / PCMCI+ | tigramite | GPLv3 | Python | ✅ | O(N V^2 tau_max k_test) | yes | ↗ |
| Schreiber Transfer Entropy | IDTxl | GPLv3 | Python | ✅ | O(N log N) k-NN | yes | ↗ |
| Convergent Cross Mapping (CCM) | pyEDM | BSD-style | Python (cpp wrapper) | ✅ | O(N^2 E) | yes | ↗ |
| DYNOTEARS | causalnex | Apache-2 | Python | ✅ | O(N^3) + iter | yes | ↗ |
| Effective Transfer Entropy | RTransferEntropy | MIT | R | ✅ | O(N log N) + bootstrap | yes | ↗ |
| Granger causality (linear F-test) | statsmodels.tsa.stattools.grangercausalitytests | BSD-3 | Python | ✅ | O(N) per param | yes | ↗ |
| Neural Granger Causality (Tank 2018) | Neural-GC | MIT | Python (PyTorch) | ✅ | high | ? | ↗ |
| Renyi/Tsallis Transfer Entropy | RTransferEntropy (entropy='Renyi') | MIT | R | ✅ | O(N log N) + bootstrap | yes | ↗ |
| PMIME | PMIME-and-TE | no LICENSE — commercial use needs author contact | MATLAB+Python | ⚠️ | O(N K L log N) | yes | ↗ |