detectCUSUMMean {ffstream} | R Documentation |
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)
x |
The vector (stream) in which to detect change(s). |
k |
control parameter for CUSUM. Default is |
h |
control parameter for CUSUM. Defqult is |
BL |
The burn-in length. Default is |
multiple |
Boolean to use to decide whether to detect multiple changes
or only a single change. Default is |
single |
Boolean to use to decide whether to detect only a single
change or multiple changes. Set to |
usePrechange |
Boolean indicating whether prechange parameters
(mean and variance) are known and will be used
(or not). Default is
|
prechangeMean |
Value to be used for the prechange mean.
Default is |
prechangeSigma |
Value to be used for the prechange standard
deviation. Default is |
prechangeVar |
Value to be used for the prechange variance.
Default is |
skipCheck |
A boolean which allows the function to skip the check
of the stream. Default is |
CUSUM updates via:
S_{j} = \max{0, S_{j-1} + (x_{j} - μ)/ σ - k}
and
T_{j} = \max{0, S_{j-1} - (x_{j} - μ)/ σ - k}
where μ and σ are, respectively, the mean and variance of the in-control stream, x_j is the observation at time j and k is a control parameter for CUSUM. Then, a change is signalled if S_j > h or T_j > h, where h is the other control parameter. This is the formulation for using CUSUM to detect an increase or decrease in the mean.
A list with the following elements:
tauhat
A vector of the changepoints found.
Dean Bodenham
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)