Bug fix (time index on locals) for Kraskov to discrete

Adding interpretation of functionality to header of Gaussian to discrete (that it says how much knowing the discrete variable reduces the variance of the continuous, without taking redundancy into account)
This commit is contained in:
joseph.lizier 2012-08-17 09:40:36 +00:00
parent 4a19b41a76
commit d9b6393a06
2 changed files with 14 additions and 4 deletions

View File

@ -10,9 +10,19 @@ import infodynamics.utils.RandomGenerator;
* observations
* (<i>assuming that the probability distribution function for these observations is
* a multivariate Gaussian distribution</i>)
* and a discrete variable.
* This is done by examining the conditional probability distribution (given the discrete
* variable) against the probability distribution for the mulitvariate set.</p>
* and a discrete variable.</p>
*
* <p>This is done by examining the conditional probability distribution for
* the multivariate continuous variable C (given the discrete
* variable D) against the probability distribution for C:
* MI(C;D) := H(C) - H(C|D).</p>
*
* <p><b>CAVEAT EMPTOR</b>: The real question this type of calculation asks
* is to what extent does knowing the value of the discrete variable reduce
* variance in the continuous variable(s). Indeed, it does not seem to behave
* as we would normally expect a mutual information calculation: if we add more
* continuous variables in, it increases in spite of redundancy between these
* variables. TODO Further exploration should take place here ...</p>
*
* <p>
* Usage:

View File

@ -474,7 +474,7 @@ public class MutualInfoCalculatorMultiVariateWithDiscreteKraskov implements Mutu
avNx += n_x;
avNy += n_y;
// Now compute the local value:
locals[N] = fixedPartOfLocals -
locals[t] = fixedPartOfLocals -
MathsUtils.digamma(n_x) - MathsUtils.digamma(n_y);
}
if (debug) {