exactalg {segmentr} | R Documentation |
Segment data into exact change points
Description
Find changes points in data calculating the penalized likelihood for all possible segment combinations
Usage
exactalg(data, likelihood, max_segments = ncol(data),
allow_parallel = TRUE)
Arguments
data |
matrix for which to find the change points |
likelihood |
a function receives the segment matrix as argument and returns a likelihood estimation. This function is used to calculate the change points that maximize the total likelihood. Depending on the algorithm being used, this function is likely to be executed many times, in which case it's also likely to be the bottleneck of the function execution, so it's advised that this function should have fast implementation. |
max_segments |
an integer that defines the maximum amount of segments to split the data into. |
allow_parallel |
allows parallel execution to take place using the
registered cluster. Assumes a cluster is registered with the |
Details
Function that implements the dynamic programming algorithm, with the intent
of finding points of independent change points for which the likelihood
function is maximized. It analyzes all possible combinations, returning the
change points that are guaranteed to segment the data matrix in the maximum
likelihood independent change points. Because it analyzes all possible combinations
of change points, it has a O-squared algorithm complexity, meaning it works
in an acceptable computation time for small datasets, but it takes quite
longer for datasets with many columns. For big datasets, hieralg()
might
be more adequate.
Value
a list of type segmentr
, which has the two attributes:
-
changepoints
: a vector with the first index of each identified change point -
segments
: a list of vectors, in which each vector corresponds to the indices that identifies a segment.