cpop: Detecting Changes in Piecewise-Linear Signals - Paul Fearnhead; Daniel Grose (Journal of Statistical Software)
Changepoint detection is an important problem with a wide range of applications. There are many different types of changes that one may wish to detect, and a widerange of algorithms and software for detecting them. However there are relatively few approaches for detecting changes-in-slope in the mean of a signal plus noise model. We describe the R package cpop, available on the Comprehensive R Archive Network (CRAN). This package implements CPOP, a dynamic programming algorithm, to find the optimal set of changes that minimizes an L0 penalized cost, with the cost being a weighted residual sum of squares. The package has extended the CPOP algorithm so it can analyse data that is unevenly spaced, allow for heterogeneous noise variance, and allows for a grid of potential change locations to be different from the locations of the data points. There is also an implementation that uses the CROPS algorithm to detect all segmentations that are optimal as you vary the L0 penalty for adding a change across a continuous range of values.