A windows-based approach for multiple change-point detection in a continuous, piecewise-linear signal via thresholding
A windows-based approach for multiple change-point detection in a continuous, piecewise-linear signal via thresholding
This function performs the windows-based variant of the Isolate-Detect methodology with the thresholding-based stopping rule in order to detect multiple change-points in a continuous, piecewise-linear noisy data sequence, with the noise being Gaussian. It is particularly helpful for very long data sequences, as due to applying Isolate-Detect on moving windows, the computational time is reduced. See Details for a brief explanation of this approach and for the relevant literature reference.
xd: A numeric vector containing the data in which you would like to find change-points.
sigma: A positive real number. It is the estimate of the standard deviation of the noise in xd. The default value is mad(diff(diff(xd)))/sqrt(6), where mad(xd) denotes the median absolute deviation of xd computed under the assumption that the noise is independent and identically distributed from the Gaussian distribution.
thr_con: A positive real number with default value equal to 1.4. It is used to define the threshold. The change-points are estimated by thresholding with threshold equal to sigma * thr_con * sqrt(2 * log(T)), where T is the length of the data sequence xd.
c_win: A positive integer with default value equal to 3000. It is the length of each window for the data sequence in hand. Isolate-Detect will be applied in segments of the form [(i-1) * c_win + 1, i * c_win], for i=1,2,...,K, where K depends on the length T of the data sequence.
w_points: A positive integer with default value equal to 3. It defines the distance between two consecutive end- or start-points of the right- or left-expanding intervals, respectively.
l_win: A positive integer with default value equal to 12000. If the length of the data sequence is less than or equal to l_win, then the windows-based approach will not be applied and the result will be obtained by the classical Isolate-Detect methodology based on thresholding.
Returns
A numeric vector with the detected change-points.
Details
The method that is implemented by this function is based on splitting the given data sequence uniformly into smaller parts (windows), to which Isolate-Detect, based on the thresholding stopping rule (see cplm_th), is then applied.
cplm_th, which is the function that win_cplm_th is based on. Also, see ID_cplm and ID, which employ win_cplm_th. In addition, see win_pcm_th for the case of detecting changes in a piecewise-constant signal via thresholding.