This function runs the Narrowest Significance Pursuit (NSP) algorithm on a data sequence y believed to follow the model
y_t = f_t + z_t, where f_t is a piecewise polynomial of degree deg, and z_t is noise. It returns localised regions (intervals) of the
domain, such that each interval must contain a change-point in the parameters of the polynomial f_t
at the global significance level alpha.
For any interval considered by the algorithm,
significant departure from parameter constancy is achieved if the multiscale supremum-type
deviation measure (see Details for the literature reference) exceeds a threshold, which is either provided as input
or determined from the data (as a function of alpha). The function works best when the errors z_t are independent and
identically distributed Gaussians.
nsp_poly(
y,
M = 1000,
thresh.type = "univ",
thresh.val = NULL,
sigma = NULL,
alpha = 0.1,
deg = 0,
overlap = FALSE
)A vector containing the data sequence.
The minimum number of intervals considered at each recursive stage, unless the number of all intervals is smaller, in which case all intervals are used.
"univ" if the significance threshold is to be determined as in Kabluchko (2007); "sim" for the degree-dependent
threshold determined
by simulation (this is only available if the length of y does not exceed 2150; for longer sequences obtain a suitable threshold by running
cov_dep_multi_norm_poly first).
Numerical value of the significance threshold (lambda in the paper); or NULL if the threshold is to be determined from
the data (see thresh.type).
The standard deviation of the errors z_t; if NULL then will be estimated from the data via Median Absolute Deviation (for i.i.d.
Gaussian sequences) of the first difference.
Desired maximum probability of obtaining an interval that does not contain a change-point (the significance threshold will be determined as a function of this parameter).
The degree of the polynomial pieces in f_t (0 for the piecewise-constant model; 1 for piecewise-linearity, etc.).
If FALSE, then on discovering a significant interval, the search continues recursively to the left and to the right of that
interval. If TRUE, then the search continues to the left and to the right of the midpoint of that interval.
A list with the following components:
A data frame containing the estimated intervals of significance: starts and ends is where the intervals start and end,
respectively; values are the values of the deviation measure on each given interval; midpoints are their midpoints.
The threshold value.
The NSP algorithm is described in P. Fryzlewicz (2021) "Narrowest Significance Pursuit: inference for multiple change-points in linear
models", preprint. For how to determine the "univ" threshold, see Kabluchko, Z. (2007) "Extreme-value analysis of standardized Gaussian increments".
Unpublished.
nsp, nsp_poly_ar, nsp_tvreg, nsp_selfnorm, nsp_poly_selfnorm
# NOT RUN {
set.seed(1)
f <- c(1:100, 100:1, 1:100)
y <- f + stats::rnorm(300) * 15
nsp_poly(y, 100, deg = 1)
# }
Run the code above in your browser using DataLab