jlizier
16015e0f12
Nearest neighbour searchers now return number of points found for findPointsWithinR as well as marking them in input arrays. Also added new method sumDistanceAboveThresholdForPointsWithinRs() for the univariate searcher (to be used in spiking TE estimator under development)
2018-11-24 21:16:36 +11:00
jlizier
fdec72aeff
Added tracking of bias correction to ChiSquaredMeasurementDistribution, so the distribution is adjusted with bias correction. Should have been sent with previous commit for patch to CMI Gaussian bias correction
2018-08-27 00:29:59 +10:00
jlizier
c0b9d736d7
Added methods to retrieve mean and standard deviation of the Chi^2 null distribution, as well as (empirical) unit test for this.
2018-05-13 22:02:46 +10:00
jlizier
142fbb4541
Merge branch 'master' of github.com:jlizier/jidt
...
Merging in Pedro's mixed Kraskov changes, plus further work on GPU for Kraskov MI
2017-11-24 15:30:20 +11:00
jlizier
9e77ebdadf
Tweak to method to print out an array of ints
2017-11-22 20:49:05 +11:00
jlizier
1bb67f0840
Adding neighbour search utilities in preparation for attempting fast surrogate generation (performing multiple neighbour searches at once where we can); in particular adding a countPointsWithinR with a remapping of the point's indices. Unit test added as well for this.
2017-11-22 20:48:30 +11:00
Pedro Martinez Mediano
446ac4ae59
Merge branch 'master' into gpu
2017-11-21 14:58:15 +00:00
jlizier
d36c803e41
Added utilities to convert between estimate values and p-values for an analytic null distribution in bulk (array calls)
2017-08-30 16:24:17 +10:00
jlizier
3e64fd28bd
Altering various continuous calculators to implement the EmpiricalNullDistributionComputer interface (where they're already implementing computeSignificance() etc.). Also altered the EmpiricalNullDistributionComputer methods to throw Exceptions, since the continuous calculators generally do this (and doesn't harm the discrete ones). Also involved implementing the methods in ConditionalMIMultiVariateCommon by selecting to permute the first variable by default.
2017-08-18 15:31:27 +10:00
jlizier
70740c9753
Added new interface EmpiricalNullDistributionComputer. Will separately alter discrete and continuous calculators to implement this class where they are implementing the required measures.
2017-08-18 13:49:09 +10:00
jlizier
fa6307b4f2
Fixing javadoc reference in AnalyticNullDistributionComputer to correct class
2017-08-18 13:48:03 +10:00
jlizier
ea40f48bbc
Adding new methods computePValueForGivenEstimate() and computeEstimateForGivenPValue to AnalyticMeasurementDistribution and implementing in ChiSquareMeasurementDistribution. Involves importing (and refactoring) a significantly larger chunk of commons.maths3 classes (and updating existing ones to latest 3.6.1 version for consistency). Also addresses issue #23 in changing the actual value of the ChiSquareMeasurementDistribution to be that of the information theoretic measurement rather than 2*N times it (which was the value that is actually chi squared distributed), which also necessitates changes to the Discrete and Gaussian calculators computeSignificance() methods.
2017-06-14 11:09:01 +10:00
Pedro Martinez Mediano
d0b35b3db8
Added NativeUtils for native lib loading and included libKraskov.so in jar.
2017-06-01 20:34:23 +10:00
jlizier
62069dab16
Added several utilities for selecting columns to MatrixUtils
2017-03-23 14:31:38 +11:00
jlizier
9a7ff306c8
Adding utilities for fast nearest neighbour searchers to handle calculations on new samples and prepare for conditional MI fast surrogates computation
2016-10-20 09:26:12 +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
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