Commit Graph

93 Commits

Author SHA1 Message Date
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 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 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 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 77680c04ad Javadocs made release-ready in the continuous.symbolic package. 2014-08-13 02:37:02 +00:00
joseph.lizier 786784e83c Javadocs made release-ready in the continuous.kraskov package. 2014-08-13 02:36:09 +00:00
joseph.lizier df196f115d Javadocs made release-ready in the continuous.kozachenko package. 2014-08-13 02:31:24 +00:00
joseph.lizier 4e676a1122 Javadocs made release-ready in the continuous.kernel package. Also renamed any "epsilon" variables to "kernelWidth" in most classes. 2014-08-13 02:30:39 +00:00
joseph.lizier fb4d6c423c Javadocs made release-ready in the continuous.gaussian package. 2014-08-13 02:24:02 +00:00
joseph.lizier edbe595032 Javadocs made release-ready in the continuous package. Also added computeLocalUsingPreviousObservations into ChannelCalculator and ChannelCalculatorMultiVariate (removed from MutualInfoMultivarate), and made the ViaCondMutualInfo classes not be abstract anymore, and moved embedding properties up into the main TransferEntropyCalculator interface 2014-08-13 02:18:33 +00:00
joseph.lizier 26c98df75c Correcting Conditional MI Calculator Kraskov algorithm 2 in line with Wibral et al.'s equation correcting how this should be done. 2014-08-12 05:24:54 +00:00
joseph.lizier a22c0d7629 Removing MultiInfoCalculatorWithMarginals since it's not used anywhere and may simply be confusing for users. 2014-08-12 01:57:38 +00:00
joseph.lizier 5432d902f1 Removing MutualInfoCalculatorMultiVariateWithMarginals since it's not used anywhere and may simply be confusing for users. 2014-08-11 06:06:44 +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 7803966168 Adding GPLv3 license statement to all code headers in the infodymamics.measures.continuous.gaussian, kernel and kozachenko packages (continuing ...) 2014-08-06 05:37:59 +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 8b0de7e9fa Refactoring discrete TE calculator to take source as first argument before destination (to match continuous calculators) 2014-08-05 12:44:05 +00:00
joseph.lizier 7e27c0d4ed Renaming ApparentTransferEntropyCalculator to TransferEntropyCalculator for simplicity -- step 1 of 2 2014-08-05 04:58:32 +00:00
joseph.lizier ab21895321 Correcting TE Kernel estimator's bias correction method to match Schreiber's approach to including contributions from other correlation sums when the full joint space has no neighbours. 2014-08-05 02:04:56 +00:00
joseph.lizier 01291c883a Added property to Kraskov MI for adding a random amount of noise to the data, to address situations with many identical values in the one variable (which causes problems with neighbourhood sizes) 2014-04-30 02:09:01 +00:00
joseph.lizier eef14a901b More info on error messages for wrong dimensions of data provided. 2014-04-30 01:30:22 +00:00
joseph.lizier b50384a302 Added methods for computeSignificance analytically (i.e. without bootstrapping) to the new Gaussian TE calculators (i.e. the Granger causality calculators), plus for directly assigning the joint covariance matrix for each calculator, and a debug method to access the computed determinants. 2014-04-23 02:07:29 +00:00
joseph.lizier 5a6fdb0ea7 Code edits to mixed calculators to fix compilation after moving them into the "mixed" package. Also needed to make some alternations to some of the continuous calculators to fix usage of protected members which are no longer accessible to the moved classes. 2014-04-17 11:10:58 +00:00
joseph.lizier 73ec340f44 Finalised moving mixed calculators into the new mixed directory. 2014-04-17 06:53:27 +00:00
joseph.lizier 91dbd9f772 Continuing to move mixed calculators into the new directory. Moving rest of interfaces from infodynamics.measures.continuous, as well as creating packages inside infodynamics.measures.mixed for the concrete implementations to come across. 2014-04-17 06:49:03 +00:00
joseph.lizier c253313724 Starting to move mixed calculators into the new directory. Testing first with Conditional MI one 2014-04-17 06:43:43 +00:00
joseph.lizier a63e104dc6 Removing the old MutualInfo "ByMulti" Kraskov multivariate MI implementations (they're just hanging around like garbage at the moment). Kept in my sandbox 2014-04-17 05:59:49 +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 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 c5402e8c48 Added ActiveInfoStorageCalculatorViaMutualInfo to allow calculation of AIS via any implementation of an MI calculator. (Forgot to add this before -- its child classes are already committed). 2014-04-04 06:02:04 +00:00
joseph.lizier 12fc61d396 Moved Kraskov mutual info calculator multivariate to inherit from the common MI multivariate class, so as to share code for adding observations, statistical tests, etc. Passed unit testing. 2014-03-26 05:08:46 +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 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