not | R Documentation |

Identifies potential locations of the change-points in the data following 'deterministic signal + noise' model (see details below) in a number of different scenarios.
The object returned by this routine can be further passed to the `features`

function, which finds the final estimate of the change-points based on a chosen stopping criterion.
It can be also passed to `plot`

, `predict`

and `residuals`

routines.

not(x, ...) ## Default S3 method: not(x, M = 10000, method = c("not", "max"), contrast = c("pcwsConstMean", "pcwsConstMeanHT", "pcwsLinContMean", "pcwsLinMean", "pcwsQuadMean", "pcwsConstMeanVar"), rand.intervals = TRUE, parallel = FALSE, augmented = FALSE, intervals, ...)

`x` |
A numeric vector with data points. |

`...` |
Not in use. |

`M` |
A number of intervals drawn in the procedure. |

`method` |
Choice of "not" (recommended) and "max". If |

`contrast` |
A type of the contrast function used in the NOT algorithm.
Choice of |

`rand.intervals` |
A logical variable. If |

`parallel` |
A logical variable. If TRUE some of computations are run in parallel using OpenMP framework. Currently this option is not supported on Windows. |

`augmented` |
A logical variable. if TRUE, the entire data are considered when the NOT segmentation tree is constructed (see the solution path algorithm in the references). |

`intervals` |
A 2-column matrix with the intervals considered in the algorithm, with start- and end- points of the intervals in, respectively, the first and the second column.
The intervals are used only if |

The data points provided in `x`

are assumed to follow

*Y_t= f_t + sigma_t varepsilon_t,*

for *t=1,...,n*, where *n* is the number of observations in `x`

, the signal *f_t* and the standard deviation *sigma_{t}*
are non-stochastic with structural breaks at unknown locations in time *t*. Currently, thefollowing scenarios for *f_t* and *sigma_t* are implemented:

Piecewise-constant signal with a Gaussian noise and constant standard deviation.

Use

`contrast="pcwsConstMean"`

here.Piecewise-constant mean with a heavy-tailed noise and constant standard deviation.

Use

`contrast="pcwsConstMeanHT"`

here.Piecewise-linear continuous signal with Gaussian noise and constant standard deviation.

Use

`contrast="pcwsLinContMean"`

here.Piecewise-linear signal with Gaussian noise and constant standard deviation.

Use

`contrast="pcwsLinMean"`

here.Piecewise-quadratic signal with Gaussian noise and constant standard deviation.

Use

`contrast="pcwsQuadMean"`

here.Piecewise-constant signal and piecewise-constant standard deviation of the Gaussian noise.

Use

`contrast="pcwsConstMeanVar"`

here.

An object of class "not", which contains the following fields:

`x` |
The input vector. |

`n` |
The length of |

`contrast` |
A scenario for the change-points. |

`contrasts` |
A 5-column matrix with the values of the contrast function, where 's' and 'e' denote start- end points of the intervals in which change-points candidates 'arg.max' have been found; 'length' shows the length of the intervals drawn, column 'max.contrast' contains corresponding value of the contrast statistic. |

`solution.path` |
A list with the solution path of the NOT algorithm (see the references) containing three fields of the same length: |

R. Baranowski, Y. Chen, and P. Fryzlewicz (2019). Narrowest-Over-Threshold Change-Point Detection. (http://stats.lse.ac.uk/fryzlewicz/not/not.pdf)

# **** Piecewisce-constant mean with Gaussian noise. # *** signal pcws.const.sig <- c(rep(0, 100), rep(1,100)) # *** data vector x <- pcws.const.sig + rnorm(100) # *** identify potential locations of the change-points w <- not(x, contrast = "pcwsConstMean") # *** some examples of how the w object can be used plot(w) plot(residuals(w)) plot(predict(w)) # *** this is how to extract the change-points fo <- features(w) fo$cpt # **** Piecewisce-constant mean with a heavy-tailed noise. # *** data vector, signal the same as in the previous example, but heavy tails x <- pcws.const.sig + rt(100, 3) # *** identify potential locations of the change-points, # using a contrast taylored to heavy-tailed data w <- not(x, contrast = "pcwsConstMeanHT") plot(w) # **** Piecewisce-constant mean and piecewise-constant variance # *** signal's standard deviation pcws.const.sd <- c(rep(2, 50), rep(1,150)) # *** data vector with pcws-const mean and variance x <- pcws.const.sig + pcws.const.sd * rnorm(100) # *** identify potential locations of the change-points in this model w <- not(x, contrast = "pcwsConstMeanVar") # *** extracting locations of the change-points fo <- features(w) fo$cpt # **** Piecewisce-linear coninuous mean # *** signal with a change in slope pcws.lin.cont.sig <- cumsum(c(rep(-1/50, 100), rep(1/50,100))) # *** data vector x <- pcws.lin.cont.sig + rnorm(100) # *** identify potential locations of the change-points in the slope coefficient w <- not(x, contrast = "pcwsLinContMean") # *** ploting the results plot(w) # *** location(s) of the change-points fo <- features(w) fo$cpt # **** Piecewisce-linear mean with jumps # *** signal with a change in slope and jumpe pcws.lin.sig <- pcws.lin.cont.sig + pcws.const.sig # *** data vector x <- pcws.lin.sig + rnorm(100) # *** identify potential locations of the change-points in the slope coefficient and the intercept w <- not(x, contrast = "pcwsLinMean") # *** ploting the results plot(w) # *** location(s) of the change-points fo <- features(w) fo$cpt # **** Piecewisce-quadratic mean with jumps # *** Piecewise-quadratic signal pcws.quad.sig <- 2*c((1:50)^2 /1000, rep(2, 100), 1:50 / 50 ) # *** data vector x <- pcws.quad.sig + rnorm(100) # *** identify potential locations of the change-points in the slope coefficient and the intercept w <- not(x, contrast = "pcwsQuadMean") # *** ploting the results plot(w) # *** location(s) of the change-points fo <- features(w) fo$cpt

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.