Travis-CI Build Status

Given a likelihood provided by the user, this package applies it to a given matrix dataset in order to find change points in the data that maximize the sum of the likelihoods of all the segments.

This package provides a handful of algorithms with different time complexities and assumption compromises so the user is able to choose the best one for the problem at hand.


Install the package from CRAN:



Sample code using the package to identify change points in the segments’ averages:

#> Loading required package: segmentr

make_segment <- function(n, p) matrix(rbinom(100 * n, 1, p), nrow = 100)
data <- cbind(make_segment(5, 0.1), make_segment(10, 0.9), make_segment(2, 0.1))
mean_lik <- function(X) abs(mean(X) - 0.5) * ncol(X)^2
segment(data, likelihood = mean_lik, algorithm = "hieralg")
#> Segments (total of 3):
#> 1:5
#> 6:15
#> 16:17

For an in depth step-by-step, please check vignette("segmentr").


This package is part of a Master’s degree research thesis at IME-USP, with Florencia Leonardi as thesis adviser.

The algorithms in this package are based on a paper by Bruno M. de Castro and Florencia Leonardi.

The berlin sample dataset was provided by © Deutscher Wetterdienst and put together with the rdwd package by Berry Boessenkool. Check make_berlin.R for the script that builds the dataset.