Commit Graph

150 Commits

Author SHA1 Message Date
jlizier 3118e57384 Making conditional MI calculators (continuous) handle empty conditionals, and properly normalise new data according to the old (except for linear Gaussian calculator, which explicitly bars normalisation now). 2016-10-18 13:21:29 +11:00
jlizier e0fb7de856 Added auto-embedding method for AIS and TE Kraskov (KSG) calculators which maximises the bias-corrected AIS. This commit includes the AIS and TE calculators themselves, an update to the TE auto analyser (with comments on the auto embed method property) 2016-10-18 12:52:31 +11:00
jlizier 0ed74612a7 Altering kernel estimator classes so that the return values for getProbability are proper probability densities rather than probabilities (by now dividing by the kernel diameter/volume). This patches the EntropyCalculatorKernel and the EntropyCalculatorMultiVariateKernel to properly return differential entropy, as advertised. Makes no difference to the MI and TE kernel calculators, as they use counts anyway rather than probability densities. 2016-10-18 11:56:38 +11:00
jlizier 7d28e93913 Bug fix in mixed Kraskov implementation for computeUsingPreviousObservations (picked up by Rose Wang). Also acknowledged that this implementation is (mostly) as per Ross 2014. 2016-10-18 00:18:37 +11:00
jlizier 9785e2a71f Enabled Active Info Storage calculators (continuous) to have addObservations() methods with validity supplied 2016-10-18 00:11:33 +11:00
jlizier 16239d3c3e Added method getSeparateNumObservations() to return a list of how many samples were pulled from each addObservations call, to make reconstructing/separating local values easier subsequently 2016-10-18 00:00:31 +11:00
jlizier 08d380398b For MultiInfoCalculatorDiscrete added simple interface for adding joint observations 2016-10-17 16:32:18 +11:00
jlizier 77cf8e5f8e Major update to TransferEntropyCalculatorDiscrete so as to implement arbirtray source and dest embeddings and source-dest delay. Also included are associated unit tests, and modifications to MatrixUtils to support these. 2016-10-17 16:22:59 +11:00
joseph.lizier dbd1dcdd54 Fixing the bias correction on our experimental discrete-continuous KSG calculators 2015-07-19 17:19:59 +00:00
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 bb587fa345 Also allowing the KSG calculators noise property to be set to "false" to indicate 0 noise. 2015-06-16 12:27:56 +00:00
joseph.lizier c4fc334c3a Adds a small (1e-8) amount of noise to all data for the Kraskov calculations by default. Fixes Issue 42. 2015-06-16 12:01:41 +00:00
joseph.lizier 90fd9fbe89 Adding auto embedding via Ragwitz criteria for Kraskov Transfer Entropy calculator. This fixes Issue 38.
Also patched AIS calculator to handle observations supplied with validity indicator when auto embedding is undertaken.
2015-06-05 06:50:03 +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 b4b94b1940 For Interregional Transfer demo, adding option for data files to be specified on command line 2015-05-28 02:43:34 +00:00
joseph.lizier f0cbb61197 Fixing Javadoc commentsin MI calculators 2015-02-05 23:39:22 +00:00
joseph.lizier 79db42274c Added methods for computing MI/TE etc in Multivariate calculators on only univariate time series (double[]) when the calculators have been initialised for dimension 1 in source and destination 2015-01-23 03:11:35 +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 82ff884b99 Explicitly setting return array values in Kraskov conditional MI calculator algorithm 2. 2014-11-14 10:27:48 +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 2a56301b75 Kraskov multi-info calculators use fast neighbour search and common multi-info class. 2014-10-30 04:21:12 +00:00
joseph.lizier ed6150c6a3 Additional operations added to multi-info interface for continuous data, and pulled common operations into a common class (revamped Kernel calculator rewritten to use this) 2014-10-30 04:18:04 +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 bf94191282 Fixes issue 34 -- adds predictive information calculators for continuous variables; interface definition, common code via abstract mutual information calculator, and implementations for Gaussian, kernel and KSG estimators. 2014-10-16 00:31:41 +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 1fb3735e58 Bug fix re issue 31 -- ensuring that kd trees get rebuilt for surrogate TE calculations. 2014-10-15 05:06:30 +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 5d16028f5b Fixes issue 13 -- by adding normalise option to Kraskov multi-information. Also Fixes issue 26 -- by adding a property for adding noise to the data (which was already done for Kraskov MI and conditional MI) 2014-09-16 01:55:22 +00:00
joseph.lizier 70bcc7c922 Mirrors multi-threading from Kraskov MI calculators to Kraskov conditional MI calculators, and so fixes issue 29. Also adds some minor modifications to multithreading code for Kraskov MI calculators. 2014-09-16 01:36:39 +00:00
joseph.lizier 0db37c9160 Making multithreading on Kraskov MI calculators the default (using all available processors), and also adding some more debug statements. 2014-09-12 12:10:42 +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 6e100c65d0 Added property for Kraskov Conditional MI calculator to add a small amount of noise to the input data. For Kraskov MI calculator, changed this to add the noise in after the data is (potentially) normalised, so the magnitude corresponds to a number of standard deviations of the original data. 2014-09-11 03:43:40 +00:00
joseph.lizier 0767e2e57e Tweaks to javadocs 2014-08-14 06:26:06 +00:00
joseph.lizier 916b6d5c34 Small javadoc modification 2014-08-14 05:57:20 +00:00
joseph.lizier 76a274094f Appending suffix "Discrete" to all discrete calculators. Step 3 -- refactoring java files for Separable info. All done for source code now 2014-08-14 03:05:28 +00:00
joseph.lizier f2c5ba4771 Appending suffix "Discrete" to all discrete calculators. Step 2 -- refactoring java files, which has flow on effects to other java files. All fixed here. 2014-08-14 03:00:15 +00:00
joseph.lizier 752b2fdb23 Appending suffix "Discrete" to all discrete calculators. Step 1 -- just changing file names 2014-08-14 02:43:31 +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 4f8137b449 Minor corrections to Javadocs for the continuous package 2014-08-13 15:20:00 +00:00
joseph.lizier b68d77e18e Rudimentary Javadocs completed for the utils package 2014-08-13 15:18:47 +00:00
joseph.lizier b916ac08e8 Javadocs noted as incomplete, and indeed the code itself experimental, for mixed package. 2014-08-13 14:53:57 +00:00
joseph.lizier 8ea3368224 Javadocs finalised for discrete package. Also added some new methods to ChannelCalculator, SingleAgentMeasure, EntropyRateCalculator, ActiveInfoStorageCalculator made to inherit/extend from SingleAgentMeasureInContextOfPastCalculator. 2014-08-13 14:42:56 +00:00
joseph.lizier 1ecdd8829f Extra imports to fix Javadoc references 2014-08-13 03:48:54 +00:00
joseph.lizier 0e598bf81e In mixed.kraskov estimators switched to use 4 nearest neighbours by default (as recommended by Kraskov et al.), and Kraskov2 algorithm for conditional MI fixed to match Wibral et al. equation (as per the continuous calculator) 2014-08-13 02:57:54 +00:00