Hypercontractivity Coefficient

The hypercontractivity coefficient [BG16] of a pair of variables is

\[s^*(X \Vert Y) = \max_{U - X - Y} \frac{I(U:Y)}{I(U:X)}\]

It is zero when \(X\) and \(Y\) are independent.

In [1]: from dit.divergences import hypercontractivity_coefficient

In [2]: from dit.example_dists import Xor

In [3]: hypercontractivity_coefficient(Xor(), [[0], [1]])
Out[3]: 0.0

API

hypercontractivity_coefficient(dist, rvs, bound=None, niter=None)[source]

Computes the hypercontractivity coefficient:

\[s*(X||Y) = max_{U - X - Y} I[U:Y]/I[U:X]\]
Parameters:
  • dist (Distribution) – The distribution of interest.

  • rvs (iterable of iterables, len(rvs) == 2) – The variables to compute the hypercontractivity coefficient of. Order is important.

  • bound (int, None) – An external bound on the size of U. If None, \(|U| <= |X|+1\).

  • niter (int, None) – The number of basin-hopping steps to perform. If None, use the default.

Returns:

hc – The hypercontractivity coefficient.

Return type:

float