estimators {crossvalidationCP} | R Documentation |
Pre-implemented estimators
Description
Pre-implemented change-point estimators that can be passed to the argument estimator
in the cross-validation functions, see the functions listed in See Also.
Usage
leastSquares(Y, param, ...)
pelt(Y, param, ...)
binseg(Y, param, ...)
wbs(Y, param, ...)
Arguments
Y |
a numeric vector giving the observations |
param |
a |
... |
additional arguments, see Details to see which arguments are allowed for which function |
Details
leastSquares
implements least squares estimation by using the segment neighbourhoods algorithm with functional pruning from Rigaill (20015), see also Auger and Lawrence (1989) for the original segment neighbourhoods algorithm. It calls Fpsn
. Each list entry in param
has to be a single integer giving the number of change-points.
optimalPartitioning
is outdated. It will give the same results as leastSquares
, but is slower. It is part of the package for backwards compatibility only.
pelt
implements PELT (Killick et al., 2012), i.e. penalised maximum likelihood estimation computed by a pruned dynamic program. For each list entry in param
it calls cpt.mean
with method = "PELT"
and penalty = param[[i]]
or when param[[i]]
is a numeric with penalty = "Manual"
and pen.value = param[[i]]
. Hence, each entry in param
must be a single numeric or an argument that can be passed to penalty
. Additionally minseglen
can be specified in ...
, by default minseglen = 1
.
binseg
implements binary segmentation (Vostrikova, 1981). The call is the same as for pelt
, but with method = "BinSeg"
. Additionally, the maximal number of change-points Q
can be specified in ...
, by default Q = 5
. Alternatively, each list entry of param
can be a list itself containing the named entries penalty
and Q
. Note that this estimator differs from binary segmentation in Zou et al. (2020), it requires a penalty instead of a given number of change-points. Warnings that Q
is chosen too small are suppressed when Q
is given in param
, but not when it is a global parameter specified in ...
or Q = 5
by default.
wbs
implements wild binary segmentation (Fryzlewicz, 2014). It calls changepoints
with th.const = param
, hence param
has to be a list of positive scalars. Additionally, ...
will be passed.
Value
For leastSquares
and wbs
a list of length length(param)
with each entry containing the estimated change-point locations for the given entry in param
. For the other functions a list containing the named entries cps
and value
, with cps
a list of the estimated change-points as before and value
a list of the locally estimated values for each entry in param
, i.e. each list entry is a list itself of length one entry longer than the corresponding entry in cps
.
References
Pein, F., and Shah, R. D. (2021) Cross-validation for change-point regression: pitfalls and solutions. arXiv:2112.03220.
Rigaill, G. (2015) A pruned dynamic programming algorithm to recover the best segmentations with 1 to Kmax change-points. Journal de la Societe Francaise de Statistique 156(4), 180–205.
Auger, I. E., Lawrence, C. E. (1989) Algorithms for the Optimal Identification of Segment Neighborhoods. Bulletin of Mathematical Biology, 51(1), 39–54.
Killick, R., Fearnhead, P., Eckley, I. A. (2012) Optimal detection of changepoints with a linear computational cost. Journal of the American Statistical Association, 107(500), 1590–1598.
Vostrikova, L. Y. (1981). Detecting 'disorder' in multidimensional random processes. Soviet Mathematics Doklady, 24, 55–59.
Fryzlewicz, P. (2014) Wild binary segmentation for multiple change-point detection. The Annals of Statistics, 42(6), 2243–2281.
Zou, C., Wang, G., and Li, R. (2020). Consistent selection of the number of change-points via sample-splitting. The Annals of Statistics, 48(1), 413–439.
See Also
crossvalidationCP
, VfoldCV
, COPPS
, CV1
, CVmod
Examples
# all functions can be called directly, e.g.
leastSquares(Y = rnorm(100), param = 2)
# but their main purpose is to serve as a local estimator in the cross-validation functions, e.g.
crossvalidationCP(rnorm(100), estimator = leastSquares)
# param must contain values that are suitable for the given estimator
crossvalidationCP(rnorm(100), estimator = pelt, param = list("SIC", "MBIC"))