Associations.jl icon indicating copy to clipboard operation
Associations.jl copied to clipboard

Simplex projection

Open kahaaga opened this issue 3 years ago • 4 comments

An implementation of the simplex projection algorithm from Sugihara and May (1990), as part of some more cross mapping stuff that is coming. The docs are here.

This probably belongs somewhere in DynamicalSystems, because it can be used to distinguish between deterministic chaos and regular behavior in time series. Keeping track of it here for now, though.

kahaaga avatar Nov 27 '21 23:11 kahaaga

Codecov Report

Merging #150 (617dce2) into master (a1940d7) will decrease coverage by 5.94%. The diff coverage is 18.62%.

:exclamation: Current head 617dce2 differs from pull request most recent head e7583e4. Consider uploading reports for the commit e7583e4 to get more accurate results Impacted file tree graph

@@            Coverage Diff             @@
##           master     #150      +/-   ##
==========================================
- Coverage   68.80%   62.85%   -5.95%     
==========================================
  Files          36       41       +5     
  Lines         734      840     +106     
==========================================
+ Hits          505      528      +23     
- Misses        229      312      +83     
Impacted Files Coverage Δ
src/CausalityTools.jl 100.00% <ø> (ø)
...ricalDynamicalModelling/delay_simplexprojection.jl 0.00% <0.00%> (ø)
.../EmpiricalDynamicalModelling/simplex_projection.jl 0.00% <0.00%> (ø)
src/EmpiricalDynamicalModelling/smap.jl 0.00% <0.00%> (ø)
src/SMeasure/smeasure.jl 100.00% <100.00%> (ø)
src/CrossMappings/utils.jl 98.33% <0.00%> (ø)
src/CrossMappings/pairwise_asymmetric_inference.jl 100.00% <0.00%> (ø)
src/CrossMappings/ccm.jl 100.00% <0.00%> (+1.85%) :arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update a1940d7...e7583e4. Read the comment docs.

codecov-commenter avatar Nov 27 '21 23:11 codecov-commenter

Hi @Datseris,

Do you think this could belong somewhere in DynamicalSystems.jl? Maybe under the chaos detection section? It is not nearly as sophisticated as the methods you already have, though, and requires visual inspection.

I've included a small example in the docs here on how they in original paper use the simplex projection to distinguish chaos from regular behavior in time series.

The simplex projection is also used by Sugihara & co to determine optimal embedding dimensions, so I could also put together a small method delay_simplexprojection that can be used in optimal_traditional_de.

kahaaga avatar Nov 28 '21 10:11 kahaaga

Hi, oh yeah this sounds like a good idea!

It is not nearly as sophisticated as the methods you already have, though, and requires visual inspection.

Haha every method requires visual inspection if you want to be rigorous! E.g., this testchaos01 becomes nonsense for noisy data.

Datseris avatar Nov 28 '21 11:11 Datseris

Haha every method requires visual inspection if you want to be rigorous!

💩

oh yeah this sounds like a good idea!

Perfect. I'll prepare relevant PRs to DelayEmbeddings and ChaosTools once I'm done with the remainder of the Sugihara et al prediction stuff I'm implementing.

kahaaga avatar Nov 28 '21 11:11 kahaaga