Commit Graph

934 Commits

Author SHA1 Message Date
joseph.lizier 839da1c81f Refactored KernelEstimatorSingleVariate to be called UniVariate 2012-10-25 01:25:10 +00:00
joseph.lizier 997fe0fbef Added AnalyticNullDistributionComputer and refactored the reference to it in MutualInfoCalculatorMultivariateGaussian 2012-10-25 01:14:55 +00:00
joseph.lizier 6e6a21f54b Added utility to convert a 1D matrix to a 2D container in MatrixUtils.
Comment changes to other classes.
2012-10-25 00:47:59 +00:00
joseph.lizier aa991901f6 Adding 3x XOR test case for MI discrete 2012-09-05 06:37:13 +00:00
joseph.lizier 65c7ac49a6 Adding folder for testing discrete calculators;
First version of unit tests for MI discrete
2012-09-05 06:24:47 +00:00
joseph.lizier cda8689afb Made sure all discrete calculators use log_2 to make answers in bits (some were still using log of base).
Merged usual and debug methods for computing average MI in discrete calculator

Added setDebug to super InfoMeasureCalculator

Cleaned up header of InfoMeasureCalculator

Adding TODO comments for Kraskov calculators

Bug fix on MutualInfoCalculatorMultiVariateWithDiscreteKraskov - we weren't normalising incoming observations for computing local MI properly, this is fixed now.
2012-09-05 06:23:48 +00:00
joseph.lizier d9b6393a06 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)
2012-08-17 09:40:36 +00:00
joseph.lizier 4a19b41a76 Adding tests for determinant via Cholesky decomposition, and more tests for MI by Gaussian method 2012-08-17 07:30:08 +00:00
joseph.lizier 07ce2d0e24 Added determinant computation via Cholesky decomposition for symmetric matrices (more efficient)
Utilising determinant computation via Cholesky decomposition in Gaussian entropy and MI calculators

Allowed ChannelCalculatorCommon.finaliseObservations() to throw Exceptions so that child classes can do so (in particular Gaussian MI needs to do so if it finds the variables are linearly dependent)
2012-08-17 07:28:50 +00:00
joseph.lizier e79dc34efb Added unit tests for MICalculatorMultiVariateWithDiscreteGaussian 2012-08-16 06:10:19 +00:00
joseph.lizier af37fdf621 Added MatrixUtilsText (pulled some tests out of MathsUtilsTest which should have been here)
Added more tests for MI MultiVariate Gaussain
2012-08-16 05:42:49 +00:00
joseph.lizier b978034f18 Added implementation for local entropy in EntropyCalculatorMultiVariateGaussian + bug fixes
Added MutualInfoCalculatorMultiVariateWithDiscreteGaussian

Added many javadoc comments
2012-08-16 05:40:29 +00:00
joseph.lizier 8129dbee7b Updating javadoc comments in the code, a. to make them more explicit regarding the transfer entropy calculators, and specifically b. to show that addObservations does not append observation time series. 2012-08-08 05:33:13 +00:00
joseph.lizier 12e6f12147 Altered interal names of kernel width variables to be kernel width, instead of epsilon. This is more intuitive for users. 2012-08-07 07:49:23 +00:00
joseph.lizier 7159ecd4cc Adding unit tests for MI Kernel and Gaussian calculators, to check that their average calculations do not change across calls to compute the statistical significance (where we clone the calculator to handle the surrogates). 2012-08-07 07:34:24 +00:00
joseph.lizier c828445784 Pulled common functionality for MutualInfoMultiVariate Kernel and Gaussian into MutualInfoMultiVariateCommon (primarily adding multiple observations and computing statistical significance).
MutualInfoMultiVariateKernel now computes statistical significance based on shuffling the first variable (the source) in line with the description in ChannelCalculator.
This adds ability to add multiple observations for a MutualInfoMultiVariateKernel calculator also.
2012-08-07 07:32:52 +00:00
joseph.lizier 4b3c84cd22 Added test for Cholesky decomposition, inversion of symmetric positive-definite matrices, and normal PDF/CDF 2012-08-06 07:45:50 +00:00
joseph.lizier d19045014a Adding extra matrix utility functions to allow multivariate normal PDF to be calculated (including Cholesky decomposition, inversion of symmetric matrices), extra matrix multiplcation routines, etc.
Added routines in MathsUtils for uni- and multi-variate normal PDF and CDF (univariate only).

Implemented local MI for Gaussian MI. Pulled many routines into the MutualInfoMultiVariateCommon
2012-08-06 07:44:23 +00:00
joseph.lizier 364ebfeff7 Changing name of unit test for Gaussian Entropy calculator internally to file (step 2/2) 2012-08-01 12:18:31 +00:00
joseph.lizier 7bdac9542d Changing name of unit test for Gaussian Entropy calculator 2012-08-01 12:15:16 +00:00
joseph.lizier eee753bc0b Adding unit tests for Chi Square distribution in MathsUtils and for Entropy Calculator Gaussian 2012-08-01 12:14:24 +00:00
joseph.lizier 6235fcbcf5 Adding analytic Chi Square measurement distribution 2012-08-01 12:12:58 +00:00
joseph.lizier 6bd3cb1661 Renamed lineargaussian package to gaussian (i got confused when i called it linear in the first place - this only is meaningful when we're working out the covariance matrix from the network structure, which isn't done here).
Part 2 - removing old directory, adding EntropyCalculatorMultivariate and MI calculator
2012-08-01 12:11:45 +00:00
joseph.lizier 05b3266037 Renamed lineargaussian package to gaussian (i got confused when i called it linear in the first place - this only is meaningful when we're working out the covariance matrix from the network structure, which isn't done here).
Part 2 - adding new files with package name change for Entropy
2012-08-01 07:43:03 +00:00
joseph.lizier c0e98dd190 Renamed lineargaussian package to gaussian (i got confused when i called it linear in the first place - this only is meaningful when we're working out the covariance matrix from the network structure, which isn't done here). Part 1 - removing old files and creating new directory 2012-08-01 07:35:59 +00:00
joseph.lizier 9a86ee8152 Added classes for joint entropy and multivariate mutual information calculation with gaussian assumption.
Restructured MeasurementDistribution to have child classes EmpiricalMeasurementDistribution and AnalyticMeasurementDistribution - this resulted in many classes being altered.

Added ChiSquare distribution methods to MathsUtils.

Added more covariance methods to MatrixUtils.
2012-08-01 07:26:18 +00:00
joseph.lizier 6af2a5b0a1 Added more covariance methods to MatrixUtils.
Changed method signatures for initialisers for multivariate channel calculator (transfer entropy and mutual information) classes to have source dimensions before destination dimensions, in line with the addObservations (etc.) methods.
2012-07-23 07:29:52 +00:00
joseph.lizier 680724dfd3 Forgot 0.5 factor in entropy for Gaussians 2012-07-20 12:35:49 +00:00
joseph.lizier 4bb762c119 Added implementation of differential entropy for Gaussian variables. 2012-07-20 12:33:23 +00:00
joseph.lizier 054044ccf6 Added doubleToIntArray() methods to allow Octave users to convert native double arrays to int arrays when required. 2012-07-18 05:22:12 +00:00
joseph.lizier cc58bb377f Added computeLocalUsingPreviousObservations(double[][], int[]) for MutualInfoCalculatorMultiVariateWithDiscreteKraskov 2012-07-17 02:33:05 +00:00
joseph.lizier d58f212345 Added copy of GPL V3 to the top of the source tree (home page already states it's distributed under GPLv3) 2012-06-15 04:09:49 +00:00
joseph.lizier ae5fda1807 Cleaned up comments around use of factory method (now not required) for constructing discrete calculators 2012-06-13 06:55:05 +00:00
joseph.lizier 56d868ca00 Uploading whole of Java Information Dynamics toolkit for the first time. 2012-05-08 00:18:37 +00:00