Joseph Lizier
fa21f7343a
Adding debug methods to KSG estimators to retrieve knn distances
2025-04-01 18:08:38 +11:00
Joseph Lizier
ec8e7f848f
CMI common estimators utilising underlying nearest neighbour searchers holding different data sets separately (for dynamic correlation exclusion)
2023-10-09 13:15:56 +11:00
Joseph Lizier
0606f8ab39
Cleaning up CMI Kraskov for new samples, including fixing some comments, logic of not using GPU for this, and if no conditional counting all point as a conditional match
2020-10-30 16:19:31 +11:00
Joseph Lizier
fce1b34a5c
Adding NORMALISE and NOISE_LEVEL_TO_ADD properties to all conditional mutual information calculators for continuous-valued data (extends this capability from only KSG to Gaussian as well)
2019-04-03 00:12:00 +11:00
Pedro Martinez Mediano
64f1142b40
Added argument to choose which variable to reorder in GPU CMI code.
2017-12-19 20:42:58 +00:00
Pedro Martinez Mediano
65ac0e9ff8
Removed unnecesary overloaded method in KSG CMI calc.
2017-12-19 20:41:11 +00:00
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