locate.change {InspectChangepoint} | R Documentation |
Single changepoint estimation
Description
Estimate the location of one changepoint in a multivariate time
series. It uses the function sparse.svd
to estimate the best
projection direction, then using univariate CUSUM statistics of the projected
time series to estimate the changepoint location.
Usage
locate.change(
x,
lambda,
schatten = 2,
sample.splitting = FALSE,
standardize.series = FALSE,
view.cusum = FALSE
)
Arguments
x |
A (p x n) data matrix of multivariate time series, each column represents a data point |
lambda |
Regularisation parameter. If no value is supplied, the dafault value is chosen to be sqrt(log(log(n)*p/2)) for p and n number of rows and columns of the data matrix x respectively. |
schatten |
The Schatten norm constraint to use in the |
sample.splitting |
Whether the changepoint should be estimated via sample splitting. The theoretical result is proven only for the sample splitted version of the algorithm. However, the default setting in practice is without sample splitting. |
standardize.series |
Whether the given time series should be standardised before estimating the projection direction. Default is FALSE, i.e. the input series is assume to have variance 1 in each coordinate. |
view.cusum |
Whether to show a plot of the projected CUSUM series |
Value
A list of two items:
changepoint - A single integer value estimate of the changepoint location is returned. If the estimated changepoint is z, it means that the multivariate time series is piecewise constant up to z and from z+1 onwards.
cusum - The maximum absolute CUSUM statistic of the projected univariate time series associated with the estimated changepoint.
vector.proj - the vector of projection, which is proportional to an estimate of the vector of change.
References
Wang, T., Samworth, R. J. (2016) High-dimensional changepoint estimation via sparse projection. Arxiv preprint: arxiv1606.06246.
Examples
n <- 2000; p <- 1000; k <- 32; z <- 400; vartheta <- 0.12; sigma <- 1; shape <- 3
noise <- 0; corr <- 0
obj <- single.change(n,p,k,z,vartheta,sigma,shape,noise,corr)
x <- obj$x
locate.change(x)