# 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:

## 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.