S-Information
The S-information (also known as the exogenous information) [RMGJ19] quantifies the total amount of dependency between each individual variable and the rest of a system. It is defined as the sum of the Total Correlation \(\T{}\) and the Dual Total Correlation \(\B{}\):
Equivalently, it is the sum, over each variable, of the mutual information between that variable and all the others:
The S-information is a special case of both the \(\Delta^k\) and \(\Gamma^k\) measures at \(k = 0\); see Delta^k and Gamma^k.
In [1]: from dit.multivariate import s_information
In [2]: from dit.example_dists import n_mod_m
In [3]: d = n_mod_m(5, 2)
In [4]: s_information(d)
Out[4]: 5.0
API
- s_information(dist, rvs=None, crvs=None)[source]
Computes the S-information, defined as the sum of the total correlation and the dual total correlation.
- Parameters:
dist (Distribution) – The distribution from which the s-information is calculated.
rvs (list, None) – A list of lists. Each inner list specifies the indexes of the random variables used to calculate the s-information. If None, then the s-information is calculated over all random variables, which is equivalent to passing rvs=dist.rvs.
crvs (list, None) – A single list of indexes specifying the random variables to condition on. If None, then no variables are conditioned on.
- Returns:
S – The s-information.
- Return type:
Examples
>>> d = dit.example_dists.n_mod_m(5, 2) >>> dit.multivariate.s_information(d) 5.0
- Raises:
ditException – Raised if dist is not a joint distribution or if rvs or crvs contain non-existant random variables.