Commit Graph

61 Commits

Author SHA1 Message Date
joseph.lizier cd67da53a4 Patching linear Gaussian estimators to give empirical statistical significance given a certain number of observations.
Changed implementation of our conditional MI calculators Kraskov via algorithm 2 to my current interpretation of how this should be done.

Added a utility for lagged covariance in MatrixUtils
2013-03-04 06:08:38 +00:00
joseph.lizier 64f6986d45 Added single array addObservations routines for Complete TE calculator discrete. Removed duplicate copyIntoMatrix method from MatrixUtils (duplicated arrayCopy) 2013-01-23 00:45:01 +00:00
joseph.lizier 4671b15d61 Added more unit tests for Kraskov conditional MI against TRENTOOL (here for multivariate data, run with TRENTOOL as univariate TE but with history lengths k=2, l=2) 2013-01-22 03:37:42 +00:00
joseph.lizier afe224ab11 Added MatrixUtils.copyIntoMatrix utility function to copy part of one 2D matrix into another 2013-01-22 03:36:11 +00:00
joseph.lizier 111055fc81 Added unit tests for Kraskov Conditional MI against TEs computed by Wibral et al.'s TRENTOOL 2013-01-16 11:54:13 +00:00
joseph.lizier 9d36e5d9a6 Bug fix to debug prints in Kraskov Conditional MI calculators 2013-01-15 01:29:57 +00:00
joseph.lizier 6761de7e02 Added debug prints to Kraskov Conditional MI calculators 2013-01-15 01:14:13 +00:00
joseph.lizier 40e7d4b211 Added common unit tests for conditional MI calculators, and added implementations of the tests for Kraskov and Gaussian conditional MI calculators 2013-01-14 12:57:01 +00:00
joseph.lizier f466012556 Made Kraskov Conditional MI calculator implement the common Conditional MI interface 2013-01-14 12:51:34 +00:00
joseph.lizier 9b9abda733 Bug fix of computation of epsilon (box width) on conditional variable in Kraskov conditional MI calculator 2 2013-01-14 11:13:58 +00:00
joseph.lizier 3167944875 Adding interface for conditional mutual information (continuous) calculator, common methods for it, and implementation for Gaussian variables. 2013-01-12 13:43:43 +00:00
joseph.lizier 74ba272f41 Added unit test for covariance 2013-01-08 05:38:22 +00:00
joseph.lizier 030a172d82 Patched covariance calculation, added utils, patched analytic computation of distribution of MI with linear Gaussians, altered comments 2013-01-08 05:37:48 +00:00
joseph.lizier 8fe32003ab Adding more unit testing on Kraskov MI, including for dependent data sets 2012-12-20 13:23:52 +00:00
joseph.lizier b0bc89dcb1 Made the unit tests for Kraskov MI more streamlined; added unit test for multivariate MI 2012-12-20 10:40:42 +00:00
joseph.lizier 617880f9f5 Making Kraskov MI and higher order calculators use MAX_NORM in the marginal spaces by default (previously this had to be supplied via a property - it was the standard choice made, but was not the default). This aligns with the default specified in the Kraskov paper. 2012-12-20 10:38:03 +00:00
joseph.lizier 90c0f5a105 Renaming abstract unit test classes inside java files (missed these in previous commit) 2012-12-18 10:57:44 +00:00
joseph.lizier 74ebf27fa0 Renaming abstract unit test classes inside java files 2012-12-18 10:53:03 +00:00
joseph.lizier 653b511c24 Renaming abstract unit test classes as first step to avoid ant file running them (next commit will update names inside java files) 2012-12-18 10:51:30 +00:00
joseph.lizier 23f7f84eaa Added common functionality for unit testing multivariate MI calculators into an abstract class.
Added basic tester for Kraskov multivariate MI, including verifying against Kraskov MILCA tool
2012-12-18 10:34:41 +00:00
joseph.lizier a6e09c7fc4 Pulled some common functionality for testing multivariate TE calculators into an abstract class.
Added basic tester for Kraskov multivariate TE
2012-12-13 14:50:33 +00:00
joseph.lizier e789acd4dc Adding various comments
Patched bug in TECalculatorMultiVariateSingleObservationsKernel whereby only k*destDimensions dimensions of destPast were being considered (this is a problem where one wants to surreptitiously condition on extra variables).
2012-12-13 14:42:40 +00:00
joseph.lizier b64b0c091d Adding unit tester for TECalculatorMultiVariateKernel 2012-12-13 12:27:42 +00:00
joseph.lizier faad3c82b2 Patched nats -> bits error as per Issue 12.
Fixed comments in MI calculator header.

Added log2 static value for TECommon to make code faster.
2012-12-13 09:13:44 +00:00
joseph.lizier 29f183e91d Altered RandomGenerator.generateDistinctRandomInts() to return int[] instead of double[].
Added comments in CompleteTransferEntropyCalculator to clarify the meaning of offsets from other sources.
Added comments regarding entropy calculator
2012-12-03 05:04:00 +00:00
joseph.lizier 971c0f1760 Uploaded ConditionalMutualInformationCalculator after fixing the computeSignificance function. (untested so far however)
Patched bad unicode character in comments for EntropyCalculatorMultivariateKozachenko
2012-10-30 06:14:44 +00:00
joseph.lizier 731c17def1 Edited comments on MatrixUtils to talk about java-octave 2D matrix conversion issues 2012-10-25 14:08:27 +00:00
joseph.lizier 0332149b03 Addressing minor compile warning 2012-10-25 01:30:47 +00:00
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