win_cplm_th: A windows-based approach for multiple change-point detection...

Description Usage Arguments Details Value Author(s) See Also Examples

View source: R/Finalised_coding.R


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.


win_cplm_th(xd, sigma = stats::mad(diff(diff(xd)))/sqrt(6), thr_con = 1.4,
  c_win = 3000, w_points = 3, l_win = 12000)



A numeric vector containing the data in which you would like to find change-points.


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.


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.


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.


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.


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.


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.


A numeric vector with the detected change-points.


Andreas Anastasiou,

See Also

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.


single.cpt <- c(seq(0, 999, 1), seq(998.5, 499, -0.5))
single.cpt.noise <- single.cpt + rnorm(2000) <- win_cplm_th(single.cpt.noise)

three.cpt <- c(seq(0, 3999, 1), seq(3998.5, 1999, -0.5), seq(2001,9999,2), seq(9998,5999,-1))
three.cpt.noise <- three.cpt + rnorm(16000) <- win_cplm_th(three.cpt.noise)

IDetect documentation built on May 2, 2019, 11:04 a.m.

Related to win_cplm_th in IDetect...