Joseph Lizier
3d1f3fec86
Gathering common functionality of EntropyMultiVariate estimators into a Common class. Adds some new functionality (e.g. addObservations() for Gaussian and Kernel)
2024-04-20 17:57:38 +10:00
Joseph Lizier
b02760ddd3
Adding overloads on setObservations and addObservations for MI and TE calculators to handle one variable univariate and one variable multivariate
2021-11-15 10:58:59 +11:00
Joseph Lizier
b1437452e4
Adding NORMALISE and NOISE_LEVEL_TO_ADD properties to all mutual information calculators for continuous-valued data (extends this capability from only KSG to Gaussian and kernel as well, the latter already had NORMALISE)
2019-04-02 12:38:17 +11:00
jlizier
dfe7ef0334
Altering AIS Multivariate Via Mutual Info calculator -- and child classes, now including kernel estimator -- to support auto-embedding primarily via the parent methods of the univariate AIS calculator.
...
Also includes patching functionality when dimension == 1 to always use the underlying AIS univariate calculator consistently, and adding missing methods on adding observations with validity array.
Also includes some minor alterations to error messages.
Gaussian and Kernel Multivariate AIS calculators have the computeAdditionalBiasToRemove() method implemented now to allow this; Gaussian calculator also adds the analytic computeSignificance() method, whilst Kernel calculator also adds a property for the number of surrogates to use in bias correction.
2018-05-16 22:42:32 +10:00
jlizier
fcd30c6716
Minor changes to Javadocs for AIS kernel
2018-05-16 22:28:19 +10:00
jlizier
e8603b08f8
Moving auto-embedding for AIS (Ragwitz and maximum bias-corrected AIS methods) from out of Gaussian and KSG calculators and into the common AIS calculator via MI class. The common implementation then allows us to introduce auto-embedding for the AIS kernel estimator as well (included requiring adding a property for the number of surrogates to use to compute the bias for this one).
...
These changes now incorporate auto-embedding for all AIS continuous calculators, partially addressing issue #38
2018-05-16 14:20:08 +10:00
jlizier
0e4455b2fd
Corrects the access at one point to the bins for the data points in the multivariate kernel estimator, which should use an IntArray object but did use an int[] object to access . Fixes #69 .
2018-05-10 20:20:02 +10:00
jlizier
d1bba0e4c1
Adding computeLocalOfPreviousObservations() to continuous Entropy estimator interface and all underlying implementations. Added unit tests that locals should average back ok. Also fixing multivariate Entropy estimator interface to implement the univariate interface also (and fixing underlying implementations to comply)
2018-04-27 11:20:25 +10:00
jlizier
0e27dbcbc2
Fixed default value of dynamic exclusion window in Kernel MI calculator to be 0. Technically it is zero (because dynCorrExcl boolean is set to false, but gets reported as 100 because the integer value of dynCorrExclTime was not set to 0 itself)
2017-09-02 20:18:36 +10:00
jlizier
086bee5945
Making continuous MultiInfoCalculator classes implement the InfoMeasureCalculatorContinuous interface. For the interfaces, this means removing methods where duplicated. For implementing classes, this means adding the missing methods.
2017-08-18 23:42:43 +10:00
jlizier
65c7cd99cc
Making continuous EntropyCalculator and EntropyCalculatorMultiVariate classes implement the InfoMeasureCalculatorContinuous interface. For the interfaces, this means removing methods where duplicated. Also added NUM_DIMENSIONS property to EntropyCalculatorMultiVariate interface, so that these calculators can have an initialise() method which takes no parameters. Fixed all implementing classes to have any methods that they were missing.
2017-08-18 20:18:29 +10:00
Pedro Martinez Mediano
09548028e0
Merge remote-tracking branch 'ghub/master'. This merges Joe's v1.3.1 master into Pedro's master.
2017-05-24 20:24:32 +10: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
Pedro Martinez Mediano
3da629a817
Preliminary commit of multivariate AIS calculators and unit tests. Fully functional, but not tested enough.
2016-03-15 22:36:12 +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
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
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
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
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
e7b8958fda
Adding package-info.java files for Javadocs for the various packages
2014-08-13 15:36:10 +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
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
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
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
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
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
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
e789acd4dc
Adding various comments
...
Patched bug in TECalculatorMultiVariateSingleObservationsKernel whereby only k*destDimensions dimensions of destPast were being considered (this is a problem where one wants to surreptitiously condition on extra variables).
2012-12-13 14:42:40 +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
839da1c81f
Refactored KernelEstimatorSingleVariate to be called UniVariate
2012-10-25 01:25:10 +00:00
joseph.lizier
07ce2d0e24
Added determinant computation via Cholesky decomposition for symmetric matrices (more efficient)
...
Utilising determinant computation via Cholesky decomposition in Gaussian entropy and MI calculators
Allowed ChannelCalculatorCommon.finaliseObservations() to throw Exceptions so that child classes can do so (in particular Gaussian MI needs to do so if it finds the variables are linearly dependent)
2012-08-17 07:28:50 +00:00
joseph.lizier
b978034f18
Added implementation for local entropy in EntropyCalculatorMultiVariateGaussian + bug fixes
...
Added MutualInfoCalculatorMultiVariateWithDiscreteGaussian
Added many javadoc comments
2012-08-16 05:40:29 +00:00
joseph.lizier
8129dbee7b
Updating javadoc comments in the code, a. to make them more explicit regarding the transfer entropy calculators, and specifically b. to show that addObservations does not append observation time series.
2012-08-08 05:33:13 +00:00
joseph.lizier
12e6f12147
Altered interal names of kernel width variables to be kernel width, instead of epsilon. This is more intuitive for users.
2012-08-07 07:49:23 +00:00
joseph.lizier
c828445784
Pulled common functionality for MutualInfoMultiVariate Kernel and Gaussian into MutualInfoMultiVariateCommon (primarily adding multiple observations and computing statistical significance).
...
MutualInfoMultiVariateKernel now computes statistical significance based on shuffling the first variable (the source) in line with the description in ChannelCalculator.
This adds ability to add multiple observations for a MutualInfoMultiVariateKernel calculator also.
2012-08-07 07:32:52 +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
6af2a5b0a1
Added more covariance methods to MatrixUtils.
...
Changed method signatures for initialisers for multivariate channel calculator (transfer entropy and mutual information) classes to have source dimensions before destination dimensions, in line with the addObservations (etc.) methods.
2012-07-23 07:29:52 +00:00
joseph.lizier
4bb762c119
Added implementation of differential entropy for Gaussian variables.
2012-07-20 12:33:23 +00:00
joseph.lizier
56d868ca00
Uploading whole of Java Information Dynamics toolkit for the first time.
2012-05-08 00:18:37 +00:00