From 3aa1493d7fcfb05892117826a9b2e1ec5bf4c7e3 Mon Sep 17 00:00:00 2001 From: jlizier Date: Fri, 21 Sep 2018 10:34:01 +1000 Subject: [PATCH] Added addObservations() method with sourceValid and destValid boolean arrays to TransferEntropyCalculatorViacondMutualInfo class --- .../MutualInfoMultiVariateCommon.java | 1 + ...ferEntropyCalculatorViaCondMutualInfo.java | 21 ++++++++++++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/java/source/infodynamics/measures/continuous/MutualInfoMultiVariateCommon.java b/java/source/infodynamics/measures/continuous/MutualInfoMultiVariateCommon.java index c109fdc..a8a912e 100755 --- a/java/source/infodynamics/measures/continuous/MutualInfoMultiVariateCommon.java +++ b/java/source/infodynamics/measures/continuous/MutualInfoMultiVariateCommon.java @@ -290,6 +290,7 @@ public abstract class MutualInfoMultiVariateCommon implements finaliseAddObservations(); } + @Override public void setObservations(double[] source, double[] destination, boolean[] sourceValid, boolean[] destValid) throws Exception { diff --git a/java/source/infodynamics/measures/continuous/TransferEntropyCalculatorViaCondMutualInfo.java b/java/source/infodynamics/measures/continuous/TransferEntropyCalculatorViaCondMutualInfo.java index 367150d..7e89580 100755 --- a/java/source/infodynamics/measures/continuous/TransferEntropyCalculatorViaCondMutualInfo.java +++ b/java/source/infodynamics/measures/continuous/TransferEntropyCalculatorViaCondMutualInfo.java @@ -335,13 +335,32 @@ public class TransferEntropyCalculatorViaCondMutualInfo implements @Override public void addObservations(double[] source, double[] destination) throws Exception { - // Store these observations in our vector for now + // Store these observations in our vectors for now vectorOfSourceTimeSeries.add(source); vectorOfDestinationTimeSeries.add(destination); vectorOfValidityOfSource.add(null); // All observations were valid vectorOfValidityOfDestination.add(null); // All observations were valid } + /** + * Adds this set of observations to compute the PDFs from, but + * only where these observations are indicated to be valid. + * + * @param source time series of observations for the source variable. + * @param destination time series of observations for the destination variable. + * @param sourceValid array (with indices the same as source) indicating whether the source at that index is valid. + * @param destValid array (with indices the same as destination) indicating whether the destination at that index is valid. + * @throws Exception + */ + public void addObservations(double[] source, double[] destination, + boolean[] sourceValid, boolean[] destValid) throws Exception { + // Store these observations in our vectors for now + vectorOfSourceTimeSeries.add(source); + vectorOfDestinationTimeSeries.add(destination); + vectorOfValidityOfSource.add(sourceValid); // All observations were valid + vectorOfValidityOfDestination.add(destValid); // All observations were valid + } + /** * Protected method to internally parse and submit observations through * to the underlying conditional MI calculator once any internal parameter settings