Skip to content
/ CUSUM Public

Different flavours of CUSUM for change point detection.

License

Notifications You must be signed in to change notification settings

giobbu/CUSUM

Repository files navigation

Python 3.11+ Documentation Status pytest codecov Status DOI

CUSUM

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.

Table of Contents

  1. Overview
  2. CUSUM Detectors
  3. Getting Started
  4. Documentation
  5. Examples
  6. License

0. Overview

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.

1. CUSUM Detectors

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.

2. Getting Started

Installation

Clone the repository:

git clone https://github.com/giobbu/CUSUM.git
cd CUSUM

and install dependencies:

uv sync

3. Documentation

Documentation is available at CUSUM Docs

4. Examples:

a) ML Model Performance Monitoring with Observed Labels

Performance Monitoring of an instance-based linear learning model applying the CUSUM algorithm.

Image Alt Text

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

Image Alt Text

5. License

This project is under the GPL-3.0 license.