Learn R Programming

segmentr

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").

Acknowledgments

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.

Copy Link

Version

Install

install.packages('segmentr')

Monthly Downloads

161

Version

0.2.0

License

MIT + file LICENSE

Issues

Pull Requests

Stars

Forks

Maintainer

Thales Mello

Last Published

August 28th, 2019

Functions in segmentr (0.2.0)

multivariate

Efficient Logarithmic Discrete Multivariate Likelihood estimation
berlin

Daily temperatures from weather stations in Berlin
calculate_likelihood

Calculate a dataset's likelihood using change points of segmentr object
auto_penalize

Penalize a likelihood function with a guessed penalty function
base_segment

Base arguments for segment function
segment

Segment data into change points
print.segmentr

Print a segmentr object
r_multivariate

Logarithmic Discrete Multivariate Likelihood estimation function implemented in R
hieralg

Segment data into change points assuming hierarchical structure
hybridalg

Segment data into change points using a mixed hierarchical-exact approach
exactalg

Segment data into exact change points