Repository navigation
dit's discrete entropy estimators: options, benchmarks, and Chao-Wang-Jost as the default layer estimator - #12
Merged
Merged
Conversation
added 4 commits
November 1, 2026 12:20
infer_multiplex(estimator=...) and the functions below it accept any of dit.inference.estimators.ENTROPY_ESTIMATORS (intrinsic flow evaluated at the hardened channel, since they need integer counts), and SkeletonSettings(entropy_estimator=...) swaps the entropies in the plug-in selection statistic. Defaults are unchanged. dit is moved to e3611818 for the new estimators. Validation scripts and report: Chao-Wang-Jost lowers layer RMSE 25-30% against Miller-Madow at 300-1000 samples and spurious synergy on iEEG 2.5x; Miller-Madow selection raises recall by 0.05 at no cost.
DEFAULT_LAYER_ESTIMATOR = 'chao_wang_jost' for infer_multiplex, estimate_edge, layer_statistics, crossfit_flows, the channel layer, and auto's cost pilot. The selection statistic stays plug-in and compare_networks keeps Miller-Madow. On VAR, logistic-map and Lorenz-96 networks it raised intrinsic-layer recall at unchanged precision; NetSim and CausalRivers were unchanged. The uncoupled false-positive test now counts runs with any false intrinsic or synergistic flow.
Panzeri-Treves, quadratic extrapolation, Wu-Yang, BUB, unseen and PYM for layers and selection, and the Gaussian copula via copula_normalize before auto.infer: none beats the current defaults (report section 5). Single-outcome entropy terms now return 0 for dit estimators (PYM rejects them). dit moves to 6314d14e, which renamed prng to rng; total_correlation_ksg is now called with rng.
Autoplectic
force-pushed
the
dit-estimators
branch
from
November 1, 2026 19:20
040f00c to
fa31789
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Brings dit's new discrete entropy estimators (dit PRs #295 and #305) into infoflow, benchmarks them against the old defaults, and adopts the one change that held up: Chao-Wang-Jost for the flow layers. Full results are in
reports/dit_estimators.md.Changes
infer_multiplex(estimator=...),estimate_edge,layer_statisticsandcrossfit_flowsaccept any ofdit.inference.estimators.ENTROPY_ESTIMATORS. Intrinsic flow is evaluated at the hardened channel, because these estimators need integer counts (measures.evaluation_table).SkeletonSettings(entropy_estimator=...)swaps the entropies in the plug-in selection statistic. The permutation tests stay valid for any statistic.measures.DEFAULT_LAYER_ESTIMATOR = "chao_wang_jost", replacing Miller-Madow. It's used by the functions above, the channel layer andauto's cost pilot. The selection statistic stays plug-in, andcompare_networkskeeps Miller-Madow. Passestimator="miller_madow"to reproduce old results.6314d14e. dit #306 renamedprngtorng, andtotal_correlation_ksgrejects the old name despite the deprecation alias, so infoflow now passesrng.validation/dit_estimators.py: layer accuracy on sofic processes with exact flows.validation/dit_estimators_selection.py: selection on random networks with known graphs.validation/dit_estimators_catfr.py: a bias probe and a selection check on catFR1 iEEG.validation/new_defaults.py: configurations compared on VAR, logistic-map and Lorenz-96 networks, the motifs, NetSim and CausalRivers, with optional copula normalisation.Findings
Tests
conditional_mutual_information, check the layer identities, check the selection CMI and the recovery of a chain under three estimators, and cover the single-outcome guard.Made with Cursor