GitHub - segmentr-package/segmentr: An R package to search for independent segments in a sequence (aka change points) (original) (raw)

segmentr

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.

Installation

Install the package from CRAN:

install.packages("segmentr")

Example

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

require(segmentr) #> 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").

Dissertation

The work behind this package is available as a web book.

Acknowledgments

This package is part of a Master’s degree research thesis atIME-USP, with Florencia Leonardias thesis adviser.

The algorithms in this package are based on apaper by Bruno M. de Castro andFlorencia Leonardi.

The berlin sample dataset was provided by © Deutscher Wetterdienst and put together with therdwd package by Berry Boessenkool. Checkmake_berlin.Rfor the script that builds the dataset.