np.mojo {CptNonPar} | R Documentation |
Nonparametric Single Lag Change Point Detection
Description
For a given lagged value of the time series, performs nonparametric change point detection of a possibly multivariate
time series. If lag
\ell = 0
, then only marginal changes are detected.
If lag
\ell \neq 0
, then changes in the pairwise distribution of (X_t , X_{t+\ell})
are detected.
Usage
np.mojo(
x,
G,
lag = 0,
kernel.f = c("quad.exp", "gauss", "euclidean", "laplace", "sine")[1],
kern.par = 1,
data.driven.kern.par = TRUE,
alpha = 0.1,
threshold = c("bootstrap", "manual")[1],
threshold.val = NULL,
reps = 199,
boot.dep = 1.5 * (nrow(as.matrix(x))^(1/3)),
parallel = FALSE,
boot.method = c("mean.subtract", "no.mean.subtract")[1],
criterion = c("eta", "epsilon", "eta.and.epsilon")[3],
eta = 0.4,
epsilon = 0.02,
use.mean = FALSE
)
Arguments
x |
Input data (a |
G |
An integer value for the moving sum bandwidth;
|
lag |
The lagged values of the time series used to detect changes. If |
kernel.f |
String indicating which kernel function to use when calculating the NP-MOJO detectors statistics; with
|
kern.par |
The tuning parameter that appears in the expression for the kernel function, which acts as a scaling parameter,
only to be used if |
data.driven.kern.par |
A |
alpha |
A numeric value for the significance level with
|
threshold |
String indicating how the threshold is computed. Possible values are
|
threshold.val |
The value of the threshold used to declare change points, only to be used if |
reps |
An integer value for the number of bootstrap replications performed, if |
boot.dep |
A positive value for the strength of dependence in the multiplier bootstrap sequence, if |
parallel |
A |
boot.method |
A string indicating the method for creating bootstrap replications. It is not recommended to change this. Possible choices are
|
criterion |
String indicating how to determine whether each point
|
eta |
A positive numeric value for the minimal mutual distance of
changes, relative to bandwidth (if |
epsilon |
a numeric value in (0,1] for the minimal size of exceeding
environments, relative to moving sum bandwidth (if |
use.mean |
|
Details
The single-lag NP-MOJO algorithm for nonparametric change point detection is described in McGonigle, E. T. and Cho, H. (2023) Nonparametric data segmentation in multivariate time series via joint characteristic functions. arXiv preprint arXiv:2305.07581.
Value
A list
object that contains the following fields:
x |
Input data |
G |
Moving window bandwidth |
lag |
Lag used to detect changes |
kernel.f , data.driven.kern.par , use.mean |
Input parameters |
kern.par |
The value of the kernel tuning parameter |
threshold , alpha , reps , boot.dep , boot.method , parallel |
Input parameters |
threshold.val |
Threshold value for declaring change points |
criterion , eta , epsilon |
Input parameters |
test.stat |
A vector containing the NP-MOJO detector statistics computed from the input data |
cpts |
A vector containing the estimated change point locations |
p.vals |
The corresponding p values of the change points, if the bootstrap method was used |
References
McGonigle, E.T., Cho, H. (2023). Nonparametric data segmentation in multivariate time series via joint characteristic functions. arXiv preprint arXiv:2305.07581.
Fan, Y., de Micheaux, P.L., Penev, S. and Salopek, D. (2017). Multivariate nonparametric test of independence. Journal of Multivariate Analysis, 153, pp.189-210.
See Also
Examples
set.seed(1)
n <- 500
noise <- c(rep(1, 300), rep(0.4, 200)) * stats::arima.sim(model = list(ar = 0.3), n = n)
signal <- c(rep(0, 100), rep(2, 400))
x <- signal + noise
x.c <- np.mojo(x, G = 83, lag = 0)
x.c$cpts
x.c$p.vals