joseph.lizier
3e017d1be4
Added unit tests for Rearchitecting Active Info Storage calculators to use a common parent class for data collection. Mainly includes testing kernel AIS calculator against the older direct implementation of this (which is now moved into the unit test area only)
2014-03-26 04:07:13 +00:00
joseph.lizier
2571c3ae9e
Rearchitected Active Info Storage calculators to use a common parent class for data collection, and underlying mutual information classes for the implementation specifics. Includes adding Kraskov and Gaussian Active Info Storage calculators, and implementing embedding delay for the past history.
2014-03-26 04:05:20 +00:00
joseph.lizier
c949339574
Allowing comment lines starting with % character in ArrayFileReader
2014-01-31 11:32:20 +00:00
joseph.lizier
2b8ab0e939
Adding error check to constructor of discrete MI calculator;
...
and making method of generating random permutations more efficient (using native library).
2013-10-22 04:08:21 +00:00
joseph.lizier
5d0934bd85
Updating unit tests to reflect changes to discrete MI calculator and method of generating random permutations.
2013-10-22 04:06:58 +00:00
joseph.lizier
6fe22e39cb
Added unit tests for new method generateRandomPerturbations(int, int) in RandomGenerator, and for sortIndices(double[]) method to MatrixUtils
2013-10-18 00:45:46 +00:00
joseph.lizier
b4645584fe
Added new method generateRandomPerturbations(int, int) to RandomGenerator, and switched all computeSignificance methods to use this (since there's no need for checking for distinct perturbations really, and this is much faster). Required adding sortIndices(double[]) method to MatrixUtils
2013-10-18 00:42:12 +00:00
joseph.lizier
1d5ae4a176
Added unit test for bug fix to computeSignificance() of ConditionalMutualInformationCalculator, simply to make sure it doesn't throw an exception
2013-10-17 13:20:42 +00:00
joseph.lizier
c7b42e38ae
Bug fix to computeSignificance() of ConditionalMutualInformationCalculator
2013-10-17 13:19:58 +00:00
joseph.lizier
8991b4176c
Minor changes to method header comments
2013-09-10 22:50:30 +00:00
joseph.lizier
9c03691c09
Predictive information calculator unit tests added
2013-08-13 04:33:45 +00:00
joseph.lizier
7f48066b57
Predictive information calculator implementation made from active information storage
2013-08-13 04:33:18 +00:00
joseph.lizier
1c0e9098cc
Extra unit test for Issue 16
2013-07-06 18:36:03 +00:00
joseph.lizier
68b0233e28
Extended fix to handle zero-covariance conditionals for handling linear redundancies amongst variables properly in ConditionalMICalculatorMultivariateGaussian - this contributes to resolution (closed) for Issue 16
2013-07-06 18:24:13 +00:00
joseph.lizier
ce1a3b4b31
Extended fix to local cond MI values for handling linear redundancies amongst variables properly in ConditionalMICalculatorMultivariateGaussian - this resolves Issue 16
2013-07-06 13:54:02 +00:00
joseph.lizier
0907ed495e
Handle linear redundancies amongst variables properly in ConditionalMICalculatorMultivariateGaussian. Still need to extend this to the local conditional MI values
2013-07-06 11:11:56 +00:00
joseph.lizier
524b277b54
Adding minor utility functions
2013-06-18 07:31:18 +00:00
joseph.lizier
75c36dc13a
Adding common parent implementation of Conditional MI calculator from continuous to discrete variable, plus a linear-Gaussian implementation of it
2013-03-18 06:08:12 +00:00
joseph.lizier
b17ba9b05c
Minor alterations to utilities, including adding exceptions and adding to-do notes.
2013-03-18 05:55:43 +00:00
joseph.lizier
a00b24019c
Making linear-Gaussian implementation of Conditional MI calculator not normalise the data by default (after having made it a child class of the common conditional MI implementation, this had been switched on by default)
2013-03-18 05:52:36 +00:00
joseph.lizier
ddf4aaecc5
Reconditioned Conditional MI with Discrete calculator Kraskov as a child class of Conditional MI with Discrete calculator Common
2013-03-18 05:49:00 +00:00
joseph.lizier
4bd22a0984
Reconditioned Conditional MI calculator Kraskov as a child class of Conditional MI calculator Common
2013-03-11 12:55:29 +00:00
joseph.lizier
bc218e291c
Added new unit test for Kraskov MI calculator against MILCA for large 10000 data points of dimension 5 in each x and y; added unit tests for digamma
2013-03-07 12:50:03 +00:00
joseph.lizier
16cc8e3db2
Patched digamma function for large k; added extra debug prints to Kraskov MI calculator 2
2013-03-07 12:46:52 +00:00
joseph.lizier
cb2e0a2588
New unit tests for covariance calculation (inside conditional MI linear Gaussian), making analytic linear Gaussian signficance tests take the number of observations into account
2013-03-04 06:11:43 +00:00
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
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
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