jlizier
efb8243ed7
Altering TE Kraskov to do auto-embedding properly when we have added multiple observations with validity vectors. Also taking the opportunity to re-engineer the internals to lay groundwork for auto-embedding function to be shared with the Gaussian estimator at a later stage. Unit tests added here as well for the above.
2018-10-15 20:56:50 +11:00
jlizier
2ff6d8aeec
Added getProperty for AIS Kraskov multivariate. Need to re-engineer this class for proper code re-use anyway.
2018-10-15 14:38:46 +11:00
jlizier
3aa1493d7f
Added addObservations() method with sourceValid and destValid boolean arrays to TransferEntropyCalculatorViacondMutualInfo class
2018-09-21 10:34:01 +10:00
jlizier
af1173ba5b
Patching local MI discrete computation when we have a time difference of > 0 (we were getting an ArrayIndexOutOfBoundsException before)
2018-09-05 13:43:21 +10:00
jlizier
9dbe2f8578
Added to AutoAnalyser GUI for AIS surrogate-based bias correction (parameter being the number of surrogates) for max AIS corrected auto embedding, for kernel estimator as well as Gaussian (as an alternative to analytic). Also includes the implementing code for AIS Gaussian (was already committed for kernel)
2018-08-27 14:24:05 +10:00
jlizier
ad31af03a7
Added throws Exception for computeSignificance() on multivariate Gaussian AIS calculator, because of throws clause introduced on underlying MI estimator
2018-08-27 13:21:29 +10:00
jlizier
f502497256
Added bias correction option to AutoAnalyser GUI for Gaussian AIS, TE and CTE estimators
2018-08-27 13:19:00 +10: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
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
c32b8de8b0
Fixed a hanging issue with analytic bias correction for Guassian CMI, and added to AutoAnalyser GUI
2018-08-27 00:22:02 +10:00
jlizier
b1a02be7db
Adding sanity check that discrete ContextOfPastMeasure (and child classes, including AIS and TE) have k >= 0.
2018-08-26 22:48:37 +10:00
jlizier
dc08e1c372
Catching OutOfMemoryError in Discrete calculator creation for all other discrete calculators (only MI was done in the previous commit). Also simplified constructor calls (with code re-use) for conditional TE.
2018-08-25 22:27:29 +10:00
jlizier
93c767999e
Catching OutOfMemoryError in Discrete MI calculator creation
2018-08-25 20:59:05 +10:00
jlizier
908cf675a8
Added new constructor for TE Kraskov to pass in KSG algorithm number as an integer (It's not likely that it will be needed, but is there for completeness to match the AIS one)
2018-08-24 14:48:11 +10:00
jlizier
373ebbdd56
Enabling AIS KSG calculator to have underlying KSG algorithm changed via the "ALG_NUM" property
2018-08-24 14:47:21 +10:00
jlizier
7f4dfa7970
Added bias correction property for Gaussian MI to AutoAnalyser GUI
2018-08-22 16:00:52 +10:00
jlizier
323ef47475
Adding auto-embedding properies to AutoAnalyser GUI Active Info Storage for all continuous calculators (was only in KSG before)
2018-08-22 15:53:09 +10:00
jlizier
4b6fc39c72
Fixed tool tip pop-ups for Discrete and Binned estimators in AutoAnalyser GUI (they were using spurious values from a continuous calculator before)
2018-08-21 20:56:58 +10:00
jlizier
8c5aa51f57
AutoAnalyser: Added drop-down menus (aka comboboxes) for parameters whose values are amenable to selection in this way. All child classes updated to be compatible. GUI size adjusted here also.
2018-06-26 12:22:05 +10:00
jlizier
7fafabe451
Extending MI discrete calculator to allow different bases for each variable. This necessitates immediate removal of the (int,int) constructor (where the 2nd argument was the time difference), this will now be confusing between (base, timeDiff) and (base1, base2). In time we may bring it back, after we can be reasonably comfortable people have switched away from using (base, timeDiff).
2018-06-20 10:55:21 +10:00
jlizier
4170339426
Moving check of dimensionality for continuous variables in mixed CMI calculator common to the main setObservations() method
2018-06-19 23:57:41 +10:00
jlizier
ca909dc60f
Adding check of dimensionality of observations supplied to multivariate AIS calculators when univariate is expected.
2018-06-19 23:45:00 +10:00
jlizier
5bde6f295b
Fixes issue #70 by providing setObservations(double[], int[], double[]) methods for the mixed CMI calculators (i.e. allowing univariate arrays to be passed in if dimension 1 was defined for both the continuous data and conditional). Unit test validating is included.
2018-06-19 23:08:13 +10:00
jlizier
643212840a
Making indenting style consistent through file
2018-05-18 08:56:47 +10:00
jlizier
fa9db58945
In AIS Gaussian unit test, switching property names for auto embedding to now reference the super class (AIS via Mutual Info)
2018-05-16 22:44:32 +10:00
jlizier
4ff4e4bfc9
Added unit tests for AIS Multivariate Gaussian calculator, including on auto-embedding, and that it functions ok for univariate data.
2018-05-16 22:43:46 +10: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
a649b38270
Patched new section of AIS calculator via MI, whereby addObservationsWithGivenParams() when called with a validity[] array did not compute valid start and end time pairs for the candidate k and tau, but did so for the k and tau set in the properties. Fixed so that the candidate k and tau can be supplied.
2018-05-16 14:39:54 +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
1c591925bd
Added auto-embedding to Gaussian AIS calculator, with both Ragwitz and maximum bias-corrected AIS methods. Bias-correction implemented via the Gaussian analytic surrogates. Involves defining new properties, setProperty, getProperty and preFinaliseAddObservations() to do the embedding. Unit test included also, mirroring unit testing for KSG AIS (which used linear Gaussian variables).
2018-05-15 17:35:06 +10:00
jlizier
48b48ab845
Changing AIS Via Mutual Info internal addObservationsAfterParamsDetermined method to addObservationsWithGivenParams - taking k and tau as arguments rather than using the internal ones. This allows the method to be called by auto-embedding in the child classes as well (better code re-use ready for extending auto-embedding)
2018-05-15 17:32:50 +10:00
jlizier
9552091fca
Adding Javadoc on header for neighbour counts method in KSG MI estimator 1
2018-05-15 17:28:39 +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
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
46a9785da2
In surrogates for MI and CMI also turning adding noise off since this will have been done in the initial calculation already, and will just broaden the noise here.
2018-05-12 22:35:54 +10:00
jlizier
28ba409ff6
Turning off normalisation when computing surrogates in Common CMI and MI calculators, because normalisation has already been carried out (and if one variable had no variance, this will inflate the values back to original scale)
2018-05-12 21:30:39 +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
860d43dbca
Adding additional error message for Exception during KSG Active Info Storage auto-embedding
2018-05-07 23:15:33 +10:00
jlizier
1f625b59f0
AutoAnalyser: fixing bug where column numbers for data are all set to zero if the user unclicks the "compute result?" button
2018-05-07 22:57:10 +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
bf0062b902
Switching new debug method in KSG conditional MI calculator 1 to be publicly accessible
2018-04-26 11:43:04 +10:00
jlizier
7d76f82bb2
Adding partialNeighbourCountFromObservations() method to KSG conditional MI calculator 1 for debugging investigations into the neighbour counts
2018-04-26 11:24:56 +10:00
Pedro Martinez Mediano
c15c643a09
Added tests for new embeddings in univariate KSG TE calculator.
2018-04-22 22:25:40 +01:00
Pedro Martinez Mediano
df8eec27cd
Added MAX_CORR_AIS_AND_TE embedding to univariate KSG TE calculator.
2018-04-22 22:25:05 +01:00
Pedro Martinez Mediano
f8bca3275d
Fixed docs for new MAX_CORR_AIS_AND_TE embedding method.
2018-04-22 20:45:06 +01:00
Pedro Martinez Mediano
02dad26a94
Added brief mention of AUTO_EMBED_METHOD_MAX_CORR_AIS_AND_TE to javadocs.
2018-02-27 20:29:39 +00:00
Pedro Martinez Mediano
03d5e2fb2f
Added tests for new TE autoembedding methods.
2018-02-27 20:18:28 +00:00
Pedro Martinez Mediano
5f6671aa2b
Added AUTO_EMBED_METHOD_MAX_CORR_AIS_AND_TE to multivariate KSG TE.
2018-02-27 20:18:04 +00:00
Pedro Martinez Mediano
d4c9b28973
Fixed error in KSG TE multivariate tester.
...
Tester was wrongly calling the univariate version of the algorithm using
the first column of the input.
2018-02-27 20:16:44 +00:00