Logarithmic Decomposition

Down & Mediano [DM24] refine Yeung’s I-measure into logarithmic atoms — one for every subset of the joint outcome space with two or more elements. Each atom has an intrinsic sign given by its degree (even positive, odd negative) and an interior-loss measure \(\mu\) that sums to entropy, mutual information, co-information, and so on.

The number of atoms is \(2^{|\Omega|} - |\Omega| - 1\), so the decomposition is practical only for small supports.

In [1]: from dit.multivariate import LogarithmicDecomposition

In [2]: from dit.example_dists import Xor

In [3]: ld = LogarithmicDecomposition(Xor())

In [4]: ld
Out[4]: LogarithmicDecomposition(|Omega|=4, atoms=11)

In [5]: abs(ld.coinformation() - (-1.0)) < 1e-10
Out[5]: True

API

LogarithmicDecomposition and logarithmic_decomposition() live in dit.multivariate.logarithmic_decomposition.

logarithmic_decomposition(dist: Distribution) LogarithmicDecomposition[source]

Construct a LogarithmicDecomposition for the given distribution.

Parameters:

dist (Distribution)

Return type:

LogarithmicDecomposition