mutual_information

mutual_information#

infomeasure.mutual_information(*data, approach: str, **kwargs: any)[source]#

Calculate the mutual information using a functional interface of different estimators.

Supports the following approaches:

  1. ansb: Asymptotic NSB mutual information estimator.

  2. bayes: Bayesian mutual information estimator.

  3. bonachela: Bonachela mutual information estimator.

  4. chao_shen: Chao-Shen mutual information estimator.

  5. chao_wang_jost: Chao Wang Jost mutual information estimator.

  6. discrete: Discrete mutual information estimator.

  7. grassberger: Grassberger mutual information estimator.

  8. kernel: Kernel mutual information estimator.

  9. [metric, ksg]: Kraskov-Stoegbauer-Grassberger mutual information estimator.

  10. [miller_madow, mm]: Miller-Madow mutual information estimator.

  11. nsb: NSB (Nemenman-Shafee-Bialek) mutual information estimator.

  12. [ordinal, symbolic, permutation]: Ordinal mutual information estimator.

  13. renyi: Renyi mutual information estimator.

  14. shrink: Shrinkage (James-Stein) mutual information estimator.

  15. tsallis: Tsallis mutual information estimator.

  16. zhang: Zhang mutual information estimator.

Parameters:
*dataarray_like

The data used to estimate the (conditional) mutual information.

condarray_like, optional

The conditional data used to estimate the conditional mutual information.

approachstr

The name of the estimator to use.

normalizebool, optional

If True, normalize the data before analysis. Default is False. Not available for the discrete estimator.

**kwargs: dict

Additional keyword arguments to pass to the estimator.

Returns:
float

The calculated mutual information.

Raises:
ValueError

If the estimator is not recognised.