TDAmeritrade / stumpy

STUMPY is a powerful and scalable Python library for modern time series analysis
https://stumpy.readthedocs.io/en/latest/
Other
3.66k stars 319 forks source link

Add Tutorial on Non-Normalized Methods #231

Open seanlaw opened 4 years ago

seanlaw commented 4 years ago

We currently support aamp, aamped, and aampi and it would be useful to create tutorials for them

seanlaw commented 4 years ago

@Attol8 This is another short one too if you are interested 😄

hmcoservit commented 3 years ago

Hi @seanlaw , I hope I get the time to have a go at this. Just a quick update is that we are still trying to come up with a robust version of matrix profiles using different subsequence sizes. Perhaps also one day we can have a chat to discuss how it may be possible to discover seasonality using matrix profiles (I remember your hint towards TS chains).

I was just wondering about the time complexity of AAMPI. According to the authors, I understand in the batch mode (warm start) the complexity is O(n*2). But what about the incremental updates? is it O(n)? or O(1)?

seanlaw commented 3 years ago

I hope I get the time to have a go at this. Just a quick update is that we are still trying to come up with a robust version of matrix profiles using different subsequence sizes. Perhaps also one day we can have a chat to discuss how it may be possible to discover seasonality using matrix profiles (I remember your hint towards TS chains).

Cool. Please make sure to report what you have in mind first so that we can discuss it and talk through it before anything is written 👍

I was just wondering about the time complexity of AAMPI. According to the authors, I understand in the batch mode (warm start) the complexity is O(n*2). But what about the incremental updates? is it O(n)? or O(1)?

I believe that this is still O(n * m) (where n is either the length of the full history OR the length of the rolling history and m is the subsequence length) because we employ core._mass_absolute to compute the updated distance profile. It is certainly not O(1) because we need to compare the new ingressed subsequence with the entire time series (or rolling history). For small values of n and m, it probably feels like a very fast O(k) constant time.