The CUSUM repository contains multiple change point detectors for sequential analysis, enabling the detection of changes in the statistical properties of time-ordered or streaming data.
A change point is a point in time at which the statistical properties of a target variable—or its underlying data-generating process—undergo a significant shift. Detecting such changes is critical in domains such as finance, energy markets, healthcare, environmental monitoring, industrial processes, and online advertising. In these settings, predictive models and decision-making systems must adapt continuously to non-stationary and evolving conditions.
This project implements multiple variants of the CUSUM algorithm for change point detection, enabling robust identification of distributional shifts in sequential data.
CUSUM-based detectors are sequential algorithms designed to identify shifts in time-ordered or streaming data. They operate by incrementally processing observations—either instance by instance or in batches—and signaling a change when accumulated evidence indicates a statistically significant deviation from the expected behavior.
The implemented detectors support both:
-
Batch-based detection, where change points are identified over fixed-size windows or data batches
-
Instance-based detection, where each incoming observation is evaluated upon arrival
These detectors are, therefore, well suitable for both offline analysis and real-time monitoring in streaming environmnets.
Clone the repository:
git clone https://github.com/giobbu/CUSUM.git
cd CUSUMand install dependencies:
uv syncDocumentation is available at CUSUM Docs
Performance Monitoring of an instance-based linear learning model applying the CUSUM algorithm.
At each time step:
- Generate a prediction with recursive least squares (RLS) model;
- Acquire the true observed value;
- Compute residual;
- Apply the CUSUM detector on the residuals to identify potential change points;
- Update the model parameters with the new data instance.
Check notebook here - Notebook
This project is under the GPL-3.0 license.

