Commit Graph

28 Commits

Author SHA1 Message Date
Pedro Martinez Mediano 2f1cd192b8 Fixed small typo in Java KSG CMI calculator. 2017-12-18 17:50:37 +00:00
Pedro Martinez Mediano d0304ae0c4 Added Java-side JNI functions and ensureKdTreesConstructed to KSG CMI. 2017-12-12 11:19:40 +00:00
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
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 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 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 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 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 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 1ecdd8829f Extra imports to fix Javadoc references 2014-08-13 03:48:54 +00:00
joseph.lizier bc40fb4125 Kraskov estimators switched to use 4 nearest neighbours by default (as recommended by Kraskov et al.) 2014-08-13 02:41:25 +00:00
joseph.lizier 786784e83c Javadocs made release-ready in the continuous.kraskov package. 2014-08-13 02:36:09 +00:00
joseph.lizier 6709163afd Adding GPLv3 license statement to all code headers in the infodymamics.measures.continuous.kraskov, symbolic and discrete packages (continuing ...) 2014-08-06 05:43:16 +00:00
joseph.lizier fd9bf116f9 Added TransferEntropyCalculatorViaCondMutualInfo to allow calculation of TE via any implementation of a conditional MI calculator. Added concrete implementations using this for Gaussian estimators (Gaussian TE estimator is equivalent to Granger causality). Replaced existing Kraskov TE calculator (which used two MI calculators) with one which uses one conditional MI estimator via this new method. Also patched TransferEntropyCommon.computeStartAndEndTimePairs 2014-04-07 05:31:52 +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 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 f466012556 Made Kraskov Conditional MI calculator implement the common Conditional MI interface 2013-01-14 12:51:34 +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 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 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 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 56d868ca00 Uploading whole of Java Information Dynamics toolkit for the first time. 2012-05-08 00:18:37 +00:00