changepoints {wbs} | R Documentation |
Change-points detected by WBS or BS
Description
The function applies user-specified stopping criteria to extract change-points from object
generated by wbs
or sbs
. For object
of class 'sbs', the function returns
change-points whose corresponding test statistic exceeds threshold given in th
. For object
of class 'wbs',
the change-points can be also detected using information criteria with penalties specified in penalty
.
Usage
changepoints(object, ...)
## S3 method for class 'sbs'
changepoints(object, th = NULL, th.const = 1.3,
Kmax = NULL, ...)
## S3 method for class 'wbs'
changepoints(object, th = NULL, th.const = 1.3,
Kmax = 50, penalty = c("ssic.penalty", "bic.penalty",
"mbic.penalty"), ...)
Arguments
object |
an object of 'wbs' or 'sbs' class returned by, respectively, |
... |
further arguments that may be passed to the penalty functions |
th |
a vector of positive scalars |
th.const |
a vector of positive scalars |
Kmax |
a maximum number of change-points to be detected |
penalty |
a character vector with names of penalty functions used |
Details
For the change-point detection based on thresholding (object
of class 'sbs' or 'wbs'), the user can either specify the thresholds in th
directly,
determine the maximum number Kmax
of change-points to be detected, or let th
depend on th.const
.
When Kmax
is given, the function automatically sets th
to the lowest threshold such that the number of detected change-points is lower or equal than Kmax
.
Note that for the BS algorithm it might be not possible to find the threshold such that exactly Kmax
change-points are found.
When th
and Kmax
are omitted, the threshold value is set to
th = sigma \times th.const \sqrt{2\log(n)},
where sigma is the Median Absolute Deviation estimate of the noise level and n
is the number of elements in x
.
For the change-point detection based on information criteria (object
of class 'wbs' only),
the user can specify both the maximum number of change-points (Kmax
) and a type of the penalty used.
Parameter penalty
should contain a list of characters with names of the functions of at least two arguments (n
and cpt
).
For each penalty given, the following information criterion is minimized over candidate sets of change-points cpt
:
\frac{n}{2}\log\hat{\sigma}_{k}^{2}+penalty(n,cpt),
where k
denotes the number of elements in cpt
, \hat{\sigma}_{k}
is the corresponding maximum
likelihood estimator of the residual variance.
Value
sigma |
Median Absolute Deviation estimate of the noise level |
th |
a vector of thresholds |
no.cpt.th |
the number of change-points detected for each value of |
cpt.th |
a list with the change-points detected for each value of |
Kmax |
a maximum number of change-points detected |
ic.curve |
a list with values of the chosen information criteria |
no.cpt.ic |
the number of change-points detected for each information criterion considered |
cpt.ic |
a list with the change-points detected for each information criterion considered |
Examples
#we generates gaussian noise + Poisson process signal with 10 jumps on average
set.seed(10)
N <- rpois(1,10)
true.cpt <- sample(1000,N)
m1 <- matrix(rep(1:1000,N),1000,N,byrow=FALSE)
m2 <- matrix(rep(true.cpt,1000),1000,N,byrow=TRUE)
x <- rnorm(1000) + apply(m1>=m2,1,sum)
# we apply the BS and WBS algorithms with default values for their parameters
s <- sbs(x)
w <- wbs(x)
s.cpt <- changepoints(s)
s.cpt
w.cpt <- changepoints(w)
w.cpt
#we can use different stopping criteria, invoking sbs/wbs functions is not necessary
s.cpt <- changepoints(s,th.const=c(1,1.3))
s.cpt
w.cpt <- changepoints(w,th.const=c(1,1.3))
w.cpt