Javadocs noted as incomplete, and indeed the code itself experimental, for mixed package.

This commit is contained in:
joseph.lizier 2014-08-13 14:53:57 +00:00
parent 8ea3368224
commit b916ac08e8
11 changed files with 94 additions and 19 deletions

View File

@ -19,13 +19,19 @@
package infodynamics.measures.mixed;
import infodynamics.utils.EmpiricalMeasurementDistribution;
import infodynamics.measures.continuous.ConditionalMutualInfoCalculatorMultiVariate;
/**
* A conditional mutual information calculator between a joint set of continuous variables,
* and a discrete variable, conditioned on another discrete variable.
*
* @author Joseph Lizier, joseph.lizier at gmail.com
*
* <p>These calculators are <b>EXPERIMENTAL</b> -- not properly tested,
* and not well documented. The intended calling pattern is similar to
* {@link ConditionalMutualInfoCalculatorMultiVariate}
* </p>
*
* @author Joseph Lizier (<a href="joseph.lizier at gmail.com">email</a>,
* <a href="http://lizier.me/joseph/">www</a>)
*/
public interface ConditionalMutualInfoCalculatorMultiVariateWithDiscrete {

View File

@ -18,14 +18,20 @@
package infodynamics.measures.mixed;
import infodynamics.measures.continuous.ConditionalMutualInfoCalculatorMultiVariate;
import infodynamics.utils.EmpiricalMeasurementDistribution;
/**
* A conditional mutual information calculator between a joint set of continuous variables,
* and a discrete variable, conditioned on another continuous variable vector.
*
* @author Joseph Lizier, joseph.lizier at gmail.com
*
* <p>These calculators are <b>EXPERIMENTAL</b> -- not properly tested,
* and not well documented. The intended calling pattern is similar to
* {@link ConditionalMutualInfoCalculatorMultiVariate}
* </p>
*
* @author Joseph Lizier (<a href="joseph.lizier at gmail.com">email</a>,
* <a href="http://lizier.me/joseph/">www</a>)
*/
public interface ConditionalMutualInfoCalculatorMultiVariateWithDiscreteSource {

View File

@ -18,6 +18,7 @@
package infodynamics.measures.mixed;
import infodynamics.measures.continuous.ConditionalMutualInfoCalculatorMultiVariate;
import infodynamics.measures.mixed.ConditionalMutualInfoCalculatorMultiVariateWithDiscreteSource;
import infodynamics.utils.MatrixUtils;
import infodynamics.utils.EmpiricalMeasurementDistribution;
@ -31,7 +32,13 @@ import infodynamics.utils.RandomGenerator;
* conditioned on another vector of continuous variables Z.
* It implements common methods for child classes to build on</p>
*
* @author Joseph Lizier
* <p>These calculators are <b>EXPERIMENTAL</b> -- not properly tested,
* and not well documented. The intended calling pattern is similar to
* {@link ConditionalMutualInfoCalculatorMultiVariate}
* </p>
*
* @author Joseph Lizier (<a href="joseph.lizier at gmail.com">email</a>,
* <a href="http://lizier.me/joseph/">www</a>)
*/
public abstract class ConditionalMutualInfoCalculatorMultiVariateWithDiscreteSourceCommon
implements ConditionalMutualInfoCalculatorMultiVariateWithDiscreteSource {

View File

@ -18,6 +18,7 @@
package infodynamics.measures.mixed;
import infodynamics.measures.continuous.MutualInfoCalculatorMultiVariate;
import infodynamics.utils.EmpiricalMeasurementDistribution;
/**
@ -43,8 +44,13 @@ import infodynamics.utils.EmpiricalMeasurementDistribution;
* </ol>
* </p>
*
* @author Joseph Lizier joseph.lizier_at_gmail.com
*
* <p>These calculators are <b>EXPERIMENTAL</b> -- not properly tested,
* and not well documented. The intended calling pattern is similar to
* {@link MutualInfoCalculatorMultiVariate}
* </p>
*
* @author Joseph Lizier (<a href="joseph.lizier at gmail.com">email</a>,
* <a href="http://lizier.me/joseph/">www</a>)
*/
public interface MutualInfoCalculatorMultiVariateWithDiscrete {

View File

@ -19,6 +19,7 @@
package infodynamics.measures.mixed.gaussian;
import infodynamics.measures.mixed.ConditionalMutualInfoCalculatorMultiVariateWithDiscreteSourceCommon;
import infodynamics.measures.continuous.ConditionalMutualInfoCalculatorMultiVariate;
import infodynamics.measures.continuous.ConditionalMutualInfoMultiVariateCommon;
import infodynamics.measures.continuous.gaussian.EntropyCalculatorMultiVariateGaussian;
import infodynamics.utils.MatrixUtils;
@ -43,7 +44,12 @@ import infodynamics.utils.MatrixUtils;
* as we would normally expect a mutual information calculation: if we add more
* continuous variables in, it may increase in spite of redundancy between these
* variables. TODO Further exploration should take place here ...</p>
*
*
* <p>These calculators are <b>EXPERIMENTAL</b> -- not properly tested,
* and not well documented. The intended calling pattern is similar to
* {@link ConditionalMutualInfoCalculatorMultiVariate}
* </p>
*
* <p>
* Usage:
* <ol>
@ -75,8 +81,8 @@ import infodynamics.utils.MatrixUtils;
* @see <a href="http://mathworld.wolfram.com/DifferentialEntropy.html">Differential entropy for Gaussian random variables at Mathworld</a>
* @see <a href="http://en.wikipedia.org/wiki/Differential_entropy">Differential entropy for Gaussian random variables at Wikipedia</a>
* @see <a href="http://en.wikipedia.org/wiki/Multivariate_normal_distribution">Multivariate normal distribution on Wikipedia</a>
* @author Joseph Lizier joseph.lizier_at_gmail.com
*
* @author Joseph Lizier (<a href="joseph.lizier at gmail.com">email</a>,
* <a href="http://lizier.me/joseph/">www</a>)
*/
public class ConditionalMutualInfoCalculatorMultiVariateWithDiscreteSourceGaussian
extends ConditionalMutualInfoCalculatorMultiVariateWithDiscreteSourceCommon

View File

@ -18,6 +18,7 @@
package infodynamics.measures.mixed.gaussian;
import infodynamics.measures.continuous.ConditionalMutualInfoCalculatorMultiVariate;
import infodynamics.measures.continuous.gaussian.EntropyCalculatorMultiVariateGaussian;
import infodynamics.measures.mixed.MutualInfoCalculatorMultiVariateWithDiscrete;
import infodynamics.utils.EmpiricalMeasurementDistribution;
@ -42,7 +43,12 @@ import infodynamics.utils.RandomGenerator;
* 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>These calculators are <b>EXPERIMENTAL</b> -- not properly tested,
* and not well documented. The intended calling pattern is similar to
* {@link ConditionalMutualInfoCalculatorMultiVariate}
* </p>
*
* <p>
* Usage:
* <ol>
@ -62,8 +68,8 @@ import infodynamics.utils.RandomGenerator;
*
* @see Differential entropy for Gaussian random variables defined at
* {@link http://mathworld.wolfram.com/DifferentialEntropy.html}
* @author Joseph Lizier joseph.lizier_at_gmail.com
*
* @author Joseph Lizier (<a href="joseph.lizier at gmail.com">email</a>,
* <a href="http://lizier.me/joseph/">www</a>)
*/
public class MutualInfoCalculatorMultiVariateWithDiscreteGaussian implements
MutualInfoCalculatorMultiVariateWithDiscrete, Cloneable {

View File

@ -20,12 +20,22 @@ package infodynamics.measures.mixed.kernel;
import java.util.Arrays;
import infodynamics.measures.continuous.MutualInfoCalculatorMultiVariate;
import infodynamics.measures.continuous.kernel.KernelEstimatorMultiVariate;
import infodynamics.measures.mixed.MutualInfoCalculatorMultiVariateWithDiscrete;
import infodynamics.utils.MatrixUtils;
import infodynamics.utils.EmpiricalMeasurementDistribution;
import infodynamics.utils.RandomGenerator;
/**
* <p>These calculators are <b>EXPERIMENTAL</b> -- not properly tested,
* and not well documented. The intended calling pattern is similar to
* {@link MutualInfoCalculatorMultiVariate}
* </p>
*
* @author Joseph Lizier (<a href="joseph.lizier at gmail.com">email</a>,
* <a href="http://lizier.me/joseph/">www</a>)
*/
public class MutualInfoCalculatorMultiVariateWithDiscreteKernel implements
MutualInfoCalculatorMultiVariateWithDiscrete {

View File

@ -18,6 +18,7 @@
package infodynamics.measures.mixed.kraskov;
import infodynamics.measures.continuous.ConditionalMutualInfoCalculatorMultiVariate;
import infodynamics.measures.mixed.ConditionalMutualInfoCalculatorMultiVariateWithDiscreteSourceCommon;
import infodynamics.utils.EuclideanUtils;
import infodynamics.utils.MathsUtils;
@ -34,10 +35,13 @@ import infodynamics.utils.MatrixUtils;
* follows {#link ConditionalMutualInfoCalculatorMultiVariateKraskov2}.
* </p>
*
* @see "Estimating mutual information", Kraskov, A., Stogbauer, H., Grassberger, P., Physical Review E 69, (2004) 066138
* @see http://dx.doi.org/10.1103/PhysRevE.69.066138
* <p>These calculators are <b>EXPERIMENTAL</b> -- not properly tested,
* and not well documented. The intended calling pattern is similar to
* {@link ConditionalMutualInfoCalculatorMultiVariate}
* </p>
*
* @author Joseph Lizier
* @author Joseph Lizier (<a href="joseph.lizier at gmail.com">email</a>,
* <a href="http://lizier.me/joseph/">www</a>)
*/
public class ConditionalMutualInfoCalculatorMultiVariateWithDiscreteKraskov
extends ConditionalMutualInfoCalculatorMultiVariateWithDiscreteSourceCommon

View File

@ -18,6 +18,7 @@
package infodynamics.measures.mixed.kraskov;
import infodynamics.measures.continuous.MutualInfoCalculatorMultiVariate;
import infodynamics.measures.mixed.MutualInfoCalculatorMultiVariateWithDiscrete;
import infodynamics.utils.EuclideanUtils;
import infodynamics.utils.MathsUtils;
@ -35,10 +36,13 @@ import infodynamics.utils.RandomGenerator;
* where small K is used (e.g. for binary data splitting continuous into
* two distinct groups, 1400 observations, K=4 has bias ~ -.35)</p>
*
* @see "Estimating mutual information", Kraskov, A., Stogbauer, H., Grassberger, P., Physical Review E 69, (2004) 066138
* @see http://dx.doi.org/10.1103/PhysRevE.69.066138
* <p>These calculators are <b>EXPERIMENTAL</b> -- not properly tested,
* and not well documented. The intended calling pattern is similar to
* {@link MutualInfoCalculatorMultiVariate}
* </p>
*
* @author Joseph Lizier
* @author Joseph Lizier (<a href="joseph.lizier at gmail.com">email</a>,
* <a href="http://lizier.me/joseph/">www</a>)
*/
public class MutualInfoCalculatorMultiVariateWithDiscreteKraskov implements MutualInfoCalculatorMultiVariateWithDiscrete {

View File

@ -19,6 +19,7 @@
package infodynamics.measures.mixed.symbolic;
import infodynamics.measures.mixed.ConditionalMutualInfoCalculatorMultiVariateWithDiscrete;
import infodynamics.measures.continuous.ConditionalMutualInfoCalculatorMultiVariate;
import infodynamics.measures.discrete.ConditionalMutualInformationCalculator;
import infodynamics.utils.FirstIndexComparatorDouble;
import infodynamics.utils.MathsUtils;
@ -26,6 +27,15 @@ import infodynamics.utils.MatrixUtils;
import infodynamics.utils.EmpiricalMeasurementDistribution;
import infodynamics.utils.RandomGenerator;
/**
* <p>These calculators are <b>EXPERIMENTAL</b> -- not properly tested,
* and not well documented. The intended calling pattern is similar to
* {@link ConditionalMutualInfoCalculatorMultiVariate}
* </p>
*
* @author Joseph Lizier (<a href="joseph.lizier at gmail.com">email</a>,
* <a href="http://lizier.me/joseph/">www</a>)
*/
public class ConditionalMutualInfoCalculatorMultiVariateWithDiscreteSymbolic implements
ConditionalMutualInfoCalculatorMultiVariateWithDiscrete {

View File

@ -19,6 +19,7 @@
package infodynamics.measures.mixed.symbolic;
import infodynamics.measures.mixed.MutualInfoCalculatorMultiVariateWithDiscrete;
import infodynamics.measures.continuous.MutualInfoCalculatorMultiVariate;
import infodynamics.measures.discrete.MutualInformationCalculator;
import infodynamics.utils.FirstIndexComparatorDouble;
import infodynamics.utils.MathsUtils;
@ -26,6 +27,15 @@ import infodynamics.utils.MatrixUtils;
import infodynamics.utils.EmpiricalMeasurementDistribution;
import infodynamics.utils.RandomGenerator;
/**
* <p>These calculators are <b>EXPERIMENTAL</b> -- not properly tested,
* and not well documented. The intended calling pattern is similar to
* {@link MutualInfoCalculatorMultiVariate}
* </p>
*
* @author Joseph Lizier (<a href="joseph.lizier at gmail.com">email</a>,
* <a href="http://lizier.me/joseph/">www</a>)
*/
public class MutualInfoCalculatorMultiVariateWithDiscreteSymbolic implements
MutualInfoCalculatorMultiVariateWithDiscrete {