Commit Graph

16 Commits

Author SHA1 Message Date
Joseph Lizier d9db7a15ab Further clarifications for including NORMALISE and NOISE_LEVEL_TO_ADD properties to all mutual information calculators, and handling linear redundancy sub-cases 2019-04-03 00:07:05 +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
Joseph Lizier 2a0024ad83 Fixes issue #17: Handling sub-cases for linear redundancy within and across variables in the linear-Gaussian mutual information estimator. This is done by detecting such redundancies and either returning 0 or infinity as the requisite result. Mirrors how this is done for conditional MI. 2019-03-29 00:01:36 +11:00
jlizier 7f9b1c0812 Patching bias correction for Guassian MI and CMI (some for MI was in line with previous work for CMI, which required extending here). Unit tests included. 2018-08-27 13:17:58 +10:00
jlizier 0b70e92efc Added Bias-correction property to Gaussian MI and conditional MI calculators, including set and getProperty and an implementation in the calculations. This implements bias-correction by substracting the bias (of the analytic chi^2 based null distribution) from the calculations. 2018-05-13 22:29:17 +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
joseph.lizier fb4d6c423c Javadocs made release-ready in the continuous.gaussian package. 2014-08-13 02:24:02 +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 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 030a172d82 Patched covariance calculation, added utils, patched analytic computation of distribution of MI with linear Gaussians, altered comments 2013-01-08 05:37:48 +00:00
joseph.lizier 997fe0fbef Added AnalyticNullDistributionComputer and refactored the reference to it in MutualInfoCalculatorMultivariateGaussian 2012-10-25 01:14:55 +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 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 d19045014a Adding extra matrix utility functions to allow multivariate normal PDF to be calculated (including Cholesky decomposition, inversion of symmetric matrices), extra matrix multiplcation routines, etc.
Added routines in MathsUtils for uni- and multi-variate normal PDF and CDF (univariate only).

Implemented local MI for Gaussian MI. Pulled many routines into the MutualInfoMultiVariateCommon
2012-08-06 07:44:23 +00:00
joseph.lizier 6bd3cb1661 Renamed lineargaussian package to gaussian (i got confused when i called it linear in the first place - this only is meaningful when we're working out the covariance matrix from the network structure, which isn't done here).
Part 2 - removing old directory, adding EntropyCalculatorMultivariate and MI calculator
2012-08-01 12:11:45 +00:00