model.sdll {breakfast}R Documentation

Estimating change-points in the piecewise-constant or piecewise-linear mean of a noisy data sequence via the Steepest Drop to Low Levels method

Description

This function estimates the number and locations of change-points in the piecewise-constant or piecewise-linear mean of a noisy data sequence via the Steepest Drop to Low Levels method.

Usage

model.sdll(
  cptpath.object,
  sigma = stats::mad(diff(cptpath.object$x)/sqrt(2)),
  universal = TRUE,
  th.const = NULL,
  th.const.min.mult = 0.3,
  lambda = 0.9
)

Arguments

cptpath.object

A solution-path object, returned by a sol.[name] routine. The cptpath.object$type variable decides the model type: piecewise-constant (type == "const"), piecewise-linear and continuous (type == "lin.cont") or piecewise-linear and discontinuous (type == "lin.discont"). In the piecewise-constant model, SDLL model selection should work well when cptpath.object is an object returned by the sol.wbs2 routine. In the piecewise-linear model (whether continuous or not), the output of sol.idetect should be supplied as cptpath.object. Note that the field cptpath.object$x contains the input data sequence.

sigma

An estimate of the standard deviation of the noise in the data cptpath.object$x. Can be a functional of cptpath.object$x or a specific value if known. The default in the piecewise-constant model is the Median Absolute Deviation of the vector diff(cptpath.object$x)/sqrt(2), tuned to the Gaussian distribution. In the piecewise-linear models, diff(cptpath.object$x, differences = 2)/sqrt(6) is used by default. Note that model.sdll works particularly well when the noise is i.i.d. Gaussian.

universal

If TRUE, then the threshold that decides if there are any change-points is chosen automatically, so that the probability of type-I error (i.e. indicating change-points if there are none) is approximately 1 - alpha. If FALSE, then th.const must be specified.

th.const

Only relevant if universal == FALSE; in that case a numerical value must be provided. Used to create the threshold (applicable to the contrast magnitudes stored in cptpath.object) that decides if there are any change-points in the mean vector; that threshold is then th.const * sqrt(2 * log(n)) * sigma, where n is the length of the data vector cptpath.object$x.

th.const.min.mult

A fractional multiple of the threshold, used to decide the lowest magnitude of contrasts from cptpath.object still considered by the SDLL model selection criterion as potentially change-point-carrying.

lambda

Only relevant if universal == TRUE; can be set to 0.9 or 0.95. The approximate probability of not detecting any change-points if the truth does not contain any.

Details

The Steepest Drop to Low Levels method is described in "Detecting possibly frequent change-points: Wild Binary Segmentation 2 and steepest-drop model selection", P. Fryzlewicz (2020), Journal of the Korean Statistical Society, 49, 1027–1070.

Value

An S3 object of class cptmodel, which contains the following fields:

solution.path

The solution path method used to obtain cptpath.object

type

The model type used, inherited from the given cptpath.object

model.selection

The model selection method used to return the final change-point estimators object, here its value is "sdll"

no.of.cpt

The number of estimated change-points

cpts

The locations of estimated change-points

est

An estimate of the mean of the vector cptpath.object$x

References

P. Fryzlewicz (2020). Detecting possibly frequent change-points: Wild Binary Segmentation 2 and steepest-drop model selection. Journal of the Korean Statistical Society, 49, 1027–1070.

See Also

sol.idetect, sol.idetect_seq, sol.not, sol.tguh, sol.wbs, sol.wbs2, breakfast

Examples

f <- rep(rep(c(0, 1), each = 50), 10)
x <- f + rnorm(length(f))
model.sdll(sol.wbs2(x))

[Package breakfast version 2.4 Index]