I have recently taken a brief excursus into time series analysis (TSA). A few of the prominent tools include:
- R: changepoint (could be called from Python via rpy2), bcp, kcpRS, cpm and ecp
- Python: ruptures, changefinder, prophet, luminaire, scikit-multiflow, neural-forecast, Facebook Prophet
- Data Generator: timeseries-generator
You can find an exhaustive list in Siebert et al. (2021).
I personally liked ruptures in particular which is extremely easy to use, so I implemented generators for a few common time series patterns depicted below and in the top left you see an example output when I throw different algorithms at a pattern such as
- Binary Segmentation
- Dynamic Programming Search Method
- Multivariate Singular Spectrum Analysis
- Pruned Exact Linear Time (PELT)
- Window-Based Search Method
This is useful for a plethora of tasks from finance over weather forecasts to analyzing physiological and astronomical data as well as supply chain forecasting and signal processing in general. The excellent Fraunhofer Institute has published a brief introduction into the tasks TSA can solve including indexing (finding similar patterns in database), clustering, classification, forecasting, anomaly detection, motif discovery (finding sequences that appear recurrently), segmentation (dimensionality reduction while preserving main features), blind source separation (recovering source signals of multiplexed signal) and change point detection.
As you can see, I focused on the latter here (i.e., change point detection) and the algorithms yielded informative results, even though the last three results miss a change point each. Much more could be said about the technical details, but I refer the inclined reader to more extensive external articles like this one. For forecasting in particular there is also a great book available online – Forecasting: Principles and Practice by Hyndman and Athanasopoulos.