joseph.lizier
f6c8d26bf8
Minor fixes to default values of TE calculator properties, and adding error messages for array file reading
2015-07-09 14:38:23 +00:00
joseph.lizier
62228651bc
Adding getProperty() method to all conditional MI calculators and TE calculators (except for multivariate versions at this stage), in readiness for automated embedding being added to TE Kraskov to partially fix Issue 38
2015-06-04 04:27:23 +00:00
joseph.lizier
687978103c
Added auto-embedding with Ragwitz criteria to AIS Kraskov calculator, partially addressing Issue 38. Also adds getProperty() method to AIS calculators and MI calculators.
2015-06-04 03:48:55 +00:00
joseph.lizier
21d1e68ba7
Bug fix for Kraskov conditional MI algorithm 2 -- kdTrees for var1 and conditional, as well as var2 and conditional, were only being passed the radii for var1 (or var2) but not the radius of the conditional as well. This doesn't seem problematic at face value, however in traversing the tree the wrong radius was being used at levels corresponding to the conditional(s) in checking those nodes and determining whether their children needed to be traversed as well. Patched by implementing a new method in KdTree to take all radii in the situation where one variable has already been checked. Fixes issue 39.
2015-01-21 12:23:09 +00:00
joseph.lizier
733da8265d
Dynamic correlation exclusion, or Theiler window, added to all Kraskov estimators, i.e. Mutual Info, Conditional MI, Multi-info, and thereby the derived classes including transfer entropy. Fixes issue 35
2014-11-25 12:31:44 +00:00
joseph.lizier
24a0566fd4
Patching bug in digamma function which is susceptible to race condition in multi-threaded applications. Also explicitly setting return array values in Kraskov calculators.
2014-11-14 10:24:53 +00:00
joseph.lizier
ba537e948a
Enhancements to fast nearest neighbour searching for conditional mutual information; utilises points found matching the conditional search criteria in the joint conditional with var1 and var 2 searches.
2014-11-04 00:57:26 +00:00
joseph.lizier
57fafd1551
Adding more methods to nearest neighbour search classes to return collections of points within ranges via arrays, and to use additional criteria in searching or take arguments for one variable that has already been tested. Utilising these new searches within Conditional MI Kraskov estimator algorithm 1
2014-11-03 04:57:24 +00:00
joseph.lizier
32c062f880
Inlining norms in Nearest Neighbour search classes, and adding methods to return Collections of points within ranges
2014-10-31 12:02:54 +00:00
joseph.lizier
6ade6d4311
Adding fast nearest neighbour searcher for univariate data (uses only a sorted array rather than whole k-d tree). Adds an abstract nearest neighbour searcher so calling classes don't necessarily need to know whether they're dealing with uni or multi-variates. MI and conditional MI Kraskov altered to use this where possible.
2014-10-30 04:04:16 +00:00
joseph.lizier
9c05f4693a
Fixes issue 32 -- adds fast neighbour search to Kraskov conditional MI calculators (and by implication to TE calculators). Requires adding a neighbour search within different radii for each variable to the k-d tree class.
2014-10-15 10:36:58 +00:00
joseph.lizier
bc2783b971
Fixes issue 31 -- implementing fast nearest neighbour search for Kraskov MI using a k-d tree structure.
2014-10-15 04:48:09 +00:00
joseph.lizier
feb0f320ae
Minor updates to javadocs regarding Active Info Storage Calculators.
2014-09-16 03:27:28 +00:00
joseph.lizier
957adeccd5
Fixes issue 28 - achieves multithreading on Kraskov MI calculators, merging code from Ipek and altering the design. Also partially addresses issue 24 by switching digamma for large arguments over to commons.math
2014-09-12 07:35:05 +00:00
joseph.lizier
e7b8958fda
Adding package-info.java files for Javadocs for the various packages
2014-08-13 15:36:10 +00:00
joseph.lizier
b68d77e18e
Rudimentary Javadocs completed for the utils package
2014-08-13 15:18:47 +00:00
joseph.lizier
4a3532b25b
Adding GPLv3 license statement to all code headers in the infodymamics.measures.mixed, utils and networkinference packages.
2014-08-06 06:31:24 +00:00
joseph.lizier
98d5373d62
Adding GPLv3 license statement to all code headers in the infodymamics.measures.continuous package (for starters)
2014-08-06 05:31:37 +00:00
joseph.lizier
6a1bacba42
Adding notices about derived works from the JAMA project to source files
2014-08-06 05:20:17 +00:00
joseph.lizier
90707379b1
Adding derived works from Apache Commons Math library in the JIDT source tree; using these from MathsUtils to compute chi^2 CDF.
2014-08-06 04:16:15 +00:00
joseph.lizier
ccf70d9846
Updating Octave matrix conversion class with routines for taking bytes, and booleans as integers.
2014-08-05 04:16:30 +00:00
joseph.lizier
7515b53a11
Adding MatrixUtils method for max entropy discretisation
2014-08-01 03:29:55 +00:00
joseph.lizier
e44f5b11ec
OctaveMatrix class added, which modifies org.octave.Matrix (under GPLv3).
2014-04-29 01:33:31 +00:00
joseph.lizier
83f7de5472
Added interface for ConditionalTransferEntropy. Added abstract implementation ConditionalTransferEntropyCalculatorViaCondMutualInfo, and child classes for Kraskov and Gaussian implementations.
...
Added associated embedding method to MatrixUtils, and fixed a lot of header comments here. Minor fixes to comments and which methods are specified (e.g. setProperties) for TransferEntropy and Entropy calculators.
2014-04-17 05:58:13 +00:00
joseph.lizier
7a40b433b7
Added TransferEntropyCalculatorMultiVariateViaCondMutualInfo to facilitate estimation of multivariate TE by an underlying conditional mutual information calculator. Added linear-Gaussian TE estimator using this. Switched Kraskov multivariate TE estimator from a two MI estimator to use an underlying conditional mutual information calculator; removed old Kraskov "ByMulti" classes now. Removed some initialisation routines for TransferEntropyCalculatorViaCondMutualInfo so they tie in ok.
2014-04-08 10:41:49 +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
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
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
b17ba9b05c
Minor alterations to utilities, including adding exceptions and adding to-do notes.
2013-03-18 05:55:43 +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
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
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
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
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
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
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
731c17def1
Edited comments on MatrixUtils to talk about java-octave 2D matrix conversion issues
2012-10-25 14:08:27 +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
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
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
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
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
6235fcbcf5
Adding analytic Chi Square measurement distribution
2012-08-01 12:12:58 +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