rupturesRcpp is an R package for high-performance offline change-point detection in multivariate time series. It provides a unified, object-oriented R6 interface to change-point detection methods implemented efficiently in C++. It is inspired by the highly popular Python library ruptures.
The package detects changes in the underlying structure of a time series, including changes in mean, covariance, autoregressive dynamics, and regression relationships with covariates. It supports a range of cost functions, and segmentation algorithms, from fast heuristic methods to exact dynamic-programming and penalised optimisation methods.
Documentation and case studies are available on the package website. See Getting started for the differences between the two versions and a first detection.
Supported Methods
Cost Functions
| Cost function | Detects changes in |
|---|---|
"L1", "L2"
|
Mean structure; "L1" provides greater robustness to outliers |
"SIGMA" |
Mean and covariance structure |
"VAR" |
Vector autoregressive dynamics |
"LinearL2", "LinearL1"
|
Linear regression relationships with covariates; "LinearL1" provides greater robustness to outliers |
"LinearSIGMA" |
Regression relationships and residual covariance |
"Custom" |
User-defined structural changes through an R cost function |
Installation
# Development version, documented on the package website
install.packages("rupturesRcpp",
repos = c("https://edelweiss611428.r-universe.dev",
"https://cloud.r-project.org"))
# CRAN release (1.0.3)
install.packages("rupturesRcpp")Acknowledgement
The package was developed during Google Summer of Code 2025 for The R Project for Statistical Computing by @edelweiss611428, under the mentorship of @tdhock and @deepcharles. The original GSoC project archive is available on the gsoc-2025 branch.