Implements the Vine Copula Change Point (VCCP) methodology for the estimation of the number and location of multiple change points in the vine copula structure of multivariate time series. The method uses vine copulas, various state-of-the-art segmentation methods to identify multiple change points, and a likelihood ratio test or the stationary bootstrap for inference. The vine copulas allow for various forms of dependence between time series including tail, symmetric and asymmetric dependence. The functions have been extensively tested on simulated multivariate time series data and fMRI data. For details on the VCCP methodology, please see Xiong & Cribben (2021).
The goal of VCCP is to implement Vine Copula Change Points (VCCP) model to estimate the number and location of multiple change points in the functional connectivity structure of multivariate time series. Possible binary segmentation methods of the VCCP model include NBS, OBS, MOSUM, and WBS. You can also check the significance of detected candidates by Stationary Bootstrap or Vuong test method.
You can install the released version of VCCP from CRAN with:
install.packages("VCCP")
And the development version from GitHub with:
# install.packages("devtools")
devtools::install_github("xinxiong0238/VCCP")
These are some basic examples which show you how to detect changes in the functional connectivity of multivariate time series using different binary segmentation methods and inference tests.
library(vccp)
## basic example code
data <- cbind(1:180, mvn.sim.2.cps(180, 8, seed = 101))
T <- 180
result.NV <- vccp.fun(data, method = "NBS", delta = 30, test = "V")
#> Binary search, round 1 ...
#> Binary search, round 2 ...
#> Binary search, round 3 ...
#> Perform Vuong test on candidates...
getTestPlot(result.NV)
title("VCCP: NBS + Vuong")
result.NB <- vccp.fun(data, method = "NBS", delta = 30, test = "B")
#> Binary search, round 1 ...
#> Binary search, round 2 ...
#> Binary search, round 3 ...
#> Perform stationary bootstrap test on candidates...
getTestPlot(result.NB)
title("VCCP: NBS + Stationary Bootstrap")
result.MV <- vccp.fun(data, method = "MOSUM", delta = 30, test = "V")
#> MOSUM search ...
#> Perform Vuong test on candidates...
getTestPlot(result.MV)
title("VCCP: MOSUM + Vuong")
result.MB <- vccp.fun(data, method = "MOSUM", delta = 30, test = "B")
#> MOSUM search ...
#> Perform stationary bootstrap test on candidates...
getTestPlot(result.MB)
title("VCCP: MOSUM + Stationary Bootstrap")