Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Simplex projection #150

Draft
wants to merge 19 commits into
base: main
Choose a base branch
from
Draft

Simplex projection #150

wants to merge 19 commits into from

Conversation

kahaaga
Copy link
Member

@kahaaga kahaaga commented Nov 27, 2021

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.

@codecov-commenter
Copy link

codecov-commenter commented Nov 27, 2021

Codecov Report

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

❗ 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%) ⬆️

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.

@kahaaga
Copy link
Member Author

kahaaga commented Nov 28, 2021

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.

@Datseris
Copy link
Member

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.

@kahaaga
Copy link
Member Author

kahaaga commented Nov 28, 2021

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants