JuliaDynamics/Associations.jl

A general reminder that speed-ups are possible for many methods

kahaaga opened this issue · 0 comments

As mentioned in #341, independence testing can be very slow. The slow runtime is mostly due to intrinsic properties of the methods. However For example, in #341 it is mentioned that

For example, only with a timeseries of length 3,000, the LocalPermutationTest with 50 shuffles takes quite a while.

The reason this is so slow is because LocalPermutationTest uses repeated nearest neighbor searches. In general, there is a huge potential for speed-ups both here and in ComplexityMeasures.jl for the kNN-based methods. Potential avenues for improvements are approximate kNN searches, and implementing in-place neighbor searches, so that we can re-use memory when re-searching for neighbors for surrogate realizations.