Given a vector x
, use the 'CUSUM' method to sequentially detect
changes (or a single change) in the MEAN of the vector.
detectCUSUMMean(
x,
k = 0.25,
h = 8,
BL = 50,
multiple = TRUE,
single = !multiple,
usePrechange = FALSE,
prechangeMean = NULL,
prechangeSigma = NULL,
prechangeVar = NULL,
skipCheck = FALSE
)
A list with the following elements:
tauhat
A vector of the changepoints found.
The vector (stream) in which to detect change(s).
control parameter for 'CUSUM'. Default is 0.25
.
control parameter for 'CUSUM'. Defqult is 8.00
.
The burn-in length. Default is BL=50
.
Boolean to use to decide whether to detect multiple changes
or only a single change. Default is TRUE
(i.e. detect
multiple changes).
Boolean to use to decide whether to detect only a single
change or multiple changes. Set to !multiple
, i.e.
default is FALSE. If both single
and multiple
are set to TRUE
, then only a single change will be
detected; if both set to FALSE
then multiple changes
will be detected (i.e. single
dominates).
Boolean indicating whether prechange parameters
(mean and variance) are known and will be used
(or not). Default is
FALSE
. If TRUE
, then prechange mean
and standard deviation variance must be specified.
See parameters prechangeMean
,
prechangeSigma
and prechangeVar
.
Value to be used for the prechange mean.
Default is NULL
.
If prechangeKnown = TRUE
and value is
NULL
, this will result in an error.
Value to be used for the prechange standard
deviation. Default is NULL
.
If prechangeKnown = TRUE
and value is
NULL
, this will result in an error, unless
prechangeVar
is not NULL
.
Value to be used for the prechange variance.
Default is NULL
.
If prechangeKnown = TRUE
and value is
NULL
, this will result in an error, unless
prechangeSigma
is not NULL
.
prechangeVar
is set to
sqrt(prechangeSigma)
.
A boolean which allows the function to skip the check
of the stream. Default is FALSE
.
Dean Bodenham
'CUSUM' updates via:
E. S. Page (1954) Continuous inspection schemes. Biometrika, 41(1/2), 100-115
# create a stream with three changepoints
set.seed(8)
x <- rnorm(400, 5, 1) + rep(c(0:3), each=100) # mean is 5 and s.d. is 1
# multiple changepoints
list_cusum <- detectCUSUMMean(x, k=0.25, h=8.00, BL=50, multiple=TRUE)
# now only a single (the first) changepoint
list_cusum2 <- detectCUSUMMean(x, k=0.25, h=8.00, BL=50, single=TRUE)
# now only a single (the first) changepoint, but with the prechange
# mean and variance known
list_cusum3 <- detectCUSUMMean(x, k=0.25, h=8.00, BL=50, single=TRUE,
prechangeMean=5, prechangeSigma=1)
Run the code above in your browser using DataLab