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
22883aa575
Interregional Transfer demo code: Correcting printing of parameter settings to happen only once
2014-08-07 02:15:14 +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
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
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
6c0d2f4e99
Refactoring discrete conditional TE calculator to take source as first argument before destination (to match continuous calculators)
2014-08-06 00:32:54 +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
9d85a78cc2
Renaming Complete TE discrete calculator to Conditional -- step 2 of 2 the file name change
2014-08-05 06:54:31 +00:00
joseph.lizier
a48da3dc42
Renaming Complete TE discrete calculator to Conditional -- step 1 of 2, just refactoring class names, file name change to come
2014-08-05 06:53:48 +00:00
joseph.lizier
76d4dc73a6
Renaming ApparentTransferEntropyCalculator to TransferEntropyCalculator for simplicity -- step 2 of 2, renaming the actual file
2014-08-05 04:59:31 +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
ab916e2253
Adding analytic null distribution computation to discrete TE calculator
2014-08-05 04:29:37 +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
1c324121d0
Discrete TE calculator given capability for arbitrary source and destination embedding, plus method for indicating validity of the time series
2014-08-05 02:14:59 +00:00
joseph.lizier
ba71d5443d
Discrete MI and conditional MI calculators given analytic null distribution methods. MI calculator also given constructor with no lag parameter. Conditional MI calculator also given methods to specify the validity of the series.
2014-08-05 02:09:36 +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
7515b53a11
Adding MatrixUtils method for max entropy discretisation
2014-08-01 03:29:55 +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
e44f5b11ec
OctaveMatrix class added, which modifies org.octave.Matrix (under GPLv3).
2014-04-29 01:33:31 +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
06d0ddf07d
Added functions to discrete Entropy calculators for single dimensional arrays, plus local values of MI for single supplied values and statistical signficance testing for Active info storage.
2014-03-26 04:08:44 +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
c7b42e38ae
Bug fix to computeSignificance() of ConditionalMutualInformationCalculator
2013-10-17 13:19:58 +00:00
joseph.lizier
8991b4176c
Minor changes to method header comments
2013-09-10 22:50:30 +00:00
joseph.lizier
7f48066b57
Predictive information calculator implementation made from active information storage
2013-08-13 04:33:18 +00:00
joseph.lizier
68b0233e28
Extended fix to handle zero-covariance conditionals for handling linear redundancies amongst variables properly in ConditionalMICalculatorMultivariateGaussian - this contributes to resolution (closed) for Issue 16
2013-07-06 18:24:13 +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
75c36dc13a
Adding common parent implementation of Conditional MI calculator from continuous to discrete variable, plus a linear-Gaussian implementation of it
2013-03-18 06:08:12 +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
a00b24019c
Making linear-Gaussian implementation of Conditional MI calculator not normalise the data by default (after having made it a child class of the common conditional MI implementation, this had been switched on by default)
2013-03-18 05:52:36 +00:00
joseph.lizier
ddf4aaecc5
Reconditioned Conditional MI with Discrete calculator Kraskov as a child class of Conditional MI with Discrete calculator Common
2013-03-18 05:49:00 +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
16cc8e3db2
Patched digamma function for large k; added extra debug prints to Kraskov MI calculator 2
2013-03-07 12:46:52 +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
64f6986d45
Added single array addObservations routines for Complete TE calculator discrete. Removed duplicate copyIntoMatrix method from MatrixUtils (duplicated arrayCopy)
2013-01-23 00:45:01 +00:00
joseph.lizier
afe224ab11
Added MatrixUtils.copyIntoMatrix utility function to copy part of one 2D matrix into another
2013-01-22 03:36:11 +00:00
joseph.lizier
9d36e5d9a6
Bug fix to debug prints in Kraskov Conditional MI calculators
2013-01-15 01:29:57 +00:00
joseph.lizier
6761de7e02
Added debug prints to Kraskov Conditional MI calculators
2013-01-15 01:14:13 +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
9b9abda733
Bug fix of computation of epsilon (box width) on conditional variable in Kraskov conditional MI calculator 2
2013-01-14 11:13:58 +00:00
joseph.lizier
3167944875
Adding interface for conditional mutual information (continuous) calculator, common methods for it, and implementation for Gaussian variables.
2013-01-12 13:43:43 +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
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
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
29f183e91d
Altered RandomGenerator.generateDistinctRandomInts() to return int[] instead of double[].
...
Added comments in CompleteTransferEntropyCalculator to clarify the meaning of offsets from other sources.
Added comments regarding entropy calculator
2012-12-03 05:04:00 +00:00
joseph.lizier
971c0f1760
Uploaded ConditionalMutualInformationCalculator after fixing the computeSignificance function. (untested so far however)
...
Patched bad unicode character in comments for EntropyCalculatorMultivariateKozachenko
2012-10-30 06:14:44 +00:00
joseph.lizier
731c17def1
Edited comments on MatrixUtils to talk about java-octave 2D matrix conversion issues
2012-10-25 14:08:27 +00:00
joseph.lizier
0332149b03
Addressing minor compile warning
2012-10-25 01:30:47 +00:00
joseph.lizier
839da1c81f
Refactored KernelEstimatorSingleVariate to be called UniVariate
2012-10-25 01:25:10 +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
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
d9b6393a06
Bug fix (time index on locals) for Kraskov to discrete
...
Adding interpretation of functionality to header of Gaussian to discrete (that it says how much knowing the discrete variable reduces the variance of the continuous, without taking redundancy into account)
2012-08-17 09:40:36 +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
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
6235fcbcf5
Adding analytic Chi Square measurement distribution
2012-08-01 12:12:58 +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
joseph.lizier
05b3266037
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 - adding new files with package name change for Entropy
2012-08-01 07:43:03 +00:00
joseph.lizier
c0e98dd190
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 1 - removing old files and creating new directory
2012-08-01 07:35:59 +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
680724dfd3
Forgot 0.5 factor in entropy for Gaussians
2012-07-20 12:35:49 +00:00
joseph.lizier
4bb762c119
Added implementation of differential entropy for Gaussian variables.
2012-07-20 12:33:23 +00:00
joseph.lizier
054044ccf6
Added doubleToIntArray() methods to allow Octave users to convert native double arrays to int arrays when required.
2012-07-18 05:22:12 +00:00
joseph.lizier
cc58bb377f
Added computeLocalUsingPreviousObservations(double[][], int[]) for MutualInfoCalculatorMultiVariateWithDiscreteKraskov
2012-07-17 02:33:05 +00:00
joseph.lizier
ae5fda1807
Cleaned up comments around use of factory method (now not required) for constructing discrete calculators
2012-06-13 06:55:05 +00:00
joseph.lizier
56d868ca00
Uploading whole of Java Information Dynamics toolkit for the first time.
2012-05-08 00:18:37 +00:00