Learn R Programming

npcp (version 0.2-6)

cpAutocop: Test for Change-Point Detection in Univariate Observations Sensitive to Changes in the Autocopula

Description

Nonparametric test for change-point detection particularly sensitive to changes in the autocopula of univariate continuous observations. Approximate p-values for the test statistic are obtained by means of a multiplier approach. Details can be found in the first reference.

Usage

cpAutocop(x, lag = 1, b = NULL, bivariate = FALSE,
          weights = c("parzen", "bartlett"), m = 5,
          N = 1000, init.seq = NULL, include.replicates = FALSE)

Value

An object of class

htest which is a list, some of the components of which are

statistic

value of the test statistic.

p.value

corresponding approximate p-value.

cvm

the values of the length(x)-lag-1 intermediate Cramér-von Mises change-point statistics; the test statistic is defined as the maximum of those.

b

the value of parameter b.

Arguments

x

a one-column matrix containing continuous observations.

lag

an integer specifying at which lag to consider the autocopula; the autocopula is a (lag+1)-dimensional copula.

b

strictly positive integer specifying the value of the bandwidth parameter determining the serial dependence when generating dependent multiplier sequences using the 'moving average approach'; see Section 5 of the second reference. If set to NULL, b will be estimated using the function bOptEmpProc(); see the first reference.

bivariate

a logical specifying whether the test should focus only on the bivariate margin of the (lag+1)-dimensional autocopula obtained from the first and the last dimension.

weights

a string specifying the kernel for creating the weights used in the generation of dependent multiplier sequences within the 'moving average approach'; see Section 5 of the second reference.

m

a strictly positive integer specifying the number of points of the uniform grid on \((0,1)\) involved in the estimation of the bandwidth parameter; see Section 5 of the second reference.

N

number of multiplier replications.

init.seq

a sequence of independent standard normal variates of length N * (nrow(x) - lag + 2 * (b - 1)) used to generate dependent multiplier sequences.

include.replicates

a logical specifying whether the object of class htest returned by the function (see below) will include the multiplier replicates.

Details

The approximate p-value is computed as $$(0.5 +\sum_{i=1}^N\mathbf{1}_{\{S_i\ge S\}})/(N+1),$$ where \(S\) and \(S_i\) denote the test statistic and a multiplier replication, respectively. This ensures that the approximate p-value is a number strictly between 0 and 1, which is sometimes necessary for further treatments.

References

A. Bücher, J.-D. Fermanian and I. Kojadinovic (2019), Combining cumulative sum change-point detection tests for assessing the stationarity of univariate time series, Journal of Time Series Analysis 40, pages 124-150, https://arxiv.org/abs/1709.02673.

A. Bücher and I. Kojadinovic (2016), A dependent multiplier bootstrap for the sequential empirical copula process under strong mixing, Bernoulli 22:2, pages 927-968, https://arxiv.org/abs/1306.3930.

See Also

cpAutocov() for a related test based on the autocovariance.

Examples

Run this code
## AR1 example
n <- 200
k <- n/2 ## the true change-point
x <- matrix(c(arima.sim(list(ar = -0.5), n = k),
              arima.sim(list(ar = 0.5), n = n - k)))
cp <- cpAutocop(x)
cp
## Estimated change-point
which(cp$cvm == max(cp$cvm))

## AR2 example
n <- 200
k <- n/2 ## the true change-point
x <- matrix(c(arima.sim(list(ar = c(0,-0.5)), n = k),
              arima.sim(list(ar = c(0,0.5)), n = n - k)))
cpAutocop(x)
cpAutocop(x, lag = 2)
cpAutocop(x, lag = 2, bivariate = TRUE)

Run the code above in your browser using DataLab