diff --git a/java/source/infodynamics/measures/continuous/gaussian/MutualInfoCalculatorMultiVariateWithDiscreteGaussian.java b/java/source/infodynamics/measures/continuous/gaussian/MutualInfoCalculatorMultiVariateWithDiscreteGaussian.java index 96db011..ca05b3c 100755 --- a/java/source/infodynamics/measures/continuous/gaussian/MutualInfoCalculatorMultiVariateWithDiscreteGaussian.java +++ b/java/source/infodynamics/measures/continuous/gaussian/MutualInfoCalculatorMultiVariateWithDiscreteGaussian.java @@ -10,9 +10,19 @@ import infodynamics.utils.RandomGenerator; * observations * (assuming that the probability distribution function for these observations is * a multivariate Gaussian distribution) - * 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.
+ * and a discrete variable. + * + *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).
+ * + *CAVEAT EMPTOR: 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 ...
* ** Usage: diff --git a/java/source/infodynamics/measures/continuous/kraskov/MutualInfoCalculatorMultiVariateWithDiscreteKraskov.java b/java/source/infodynamics/measures/continuous/kraskov/MutualInfoCalculatorMultiVariateWithDiscreteKraskov.java index 7f5a298..aa2f750 100755 --- a/java/source/infodynamics/measures/continuous/kraskov/MutualInfoCalculatorMultiVariateWithDiscreteKraskov.java +++ b/java/source/infodynamics/measures/continuous/kraskov/MutualInfoCalculatorMultiVariateWithDiscreteKraskov.java @@ -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) {