JuliaDynamics / TransitionsInTimeseries.jl

Transition Indicators / Early Warning Signals / Regime Shifts / Change Point Detection
MIT License
18 stars 5 forks source link

New pipeline for identifying a "change" in a timeseries: SlopeChange #73

Closed Datseris closed 6 months ago

Datseris commented 6 months ago

This is the simplest possible version of #53 : there are only two maximum linear segments. A change is the change of slope from one segment to the other. A transition is a significant change.

This requires #72 to be merged first.

Datseris commented 6 months ago

@JanJereczek I am removing the paper PDF CI. As you can see it gets triggered all the time. I think it is a huge waste of electricity to build this paper.

Datseris commented 6 months ago

@JanJereczek you can preview the docs here: https://juliadynamics.github.io/TransitionsInTimeseries.jl/previews/PR73/ .

In the future, please do not wait for the docbuild to be done to review. You can read the documentation strings, I believe you don't need them to be rendered in HTML to read the documentation string text.

I am now fixing the test failures.

Datseris commented 6 months ago

I only have one question with respect to #53. You decided to use LsqFit.jl instead of LinearSegmentation.jl. Is this because of the sub-optimality mentioned of the latter mentioned in #53 ? Just out of curiosity :)

This method is different than the one in #53. Here we want to prioritize detecting when the change of slope happens in the most accurate way. In #53 and in particular in LinearSegmentation.jl the priority is to fit as many linear segments as possible, while there is little accurace on when the segments themselves change slope. Perhaps the more advanced version of the algorithm discussed in #53 could be the best of both worlds, but it is beyond my band width to implement that...

If this is ready to go, go ahead and merge.

JanJereczek commented 6 months ago

Thanks for the explanation, George!