Description Usage Arguments Details Value Author(s) References See Also Examples
This function detects multiple changepoints in the crosscovariance structure of a multivariate time series using a thresholding based procedure. It also, wherever possible, returns the relevant, transformed time series where each changepoint was detected. See Details for a brief explanation.
1 2 3 4 5 6 7 8 9 10 11 
X 
A numerical matrix representing the multivariate time series, with the columns representing its components. 
approach 
A character string, which defines the metric to be used in order to detect the changepoints. If approach = “euclidean”, which is also the default value, then the L_2 metric will be followed for the detection. If approach = “infinity”, then the L_{∞} metric will be used for the detection. 
th_max 
A positive real number with default value equal to 2.25. It is
used to define the threshold if the L_{∞} metric is chosen in

th_sum 
A positive real number with default value equal to 0.65. It is
used to define the threshold if the L_2 metric is chosen in

pointsgen 
A positive integer with default value equal to 10. It defines the distance between two consecutive end or startpoints of the right or leftexpanding intervals, respectively; see Details for more information. 
scales 
Negative integers for wavelet scales, with a small negative integer representing a fine scale. The default value is equal to 1. 
preaverage_gen 
A logical variable with default value equal to

scal_gen 
A positive integer number with default value equal to 3. It
is used to define the way we preaverage the given data sequence only if

min_dist 
A positive integer number with default value equal to 1. It is used in order to provide the minimum distance acceptable between detected changepoints if such restrictions apply. 
The time series X_t is of dimensionality p and we are
looking for changes in the crosscovariance structure between the
different time series components
X_{t}^{(1)}, X_{t}^{(2)}, ..., X_{t}^{(p)}. We first use a
waveletbased approach for the various given scales in scales
in order to transform the given time series X_t to a multiplicative
model Y_{t}^{(k)} = σ^{(k)}_t (Z_t^{(k)})^2; t=1,2,…,T; k = 1,2,…,d,
where Z_t^{(k)} is a sequence of standard normal random variables,
E(Y_t^{(k)}) = σ_t^{(k)}, and d is the new
dimensionality, which depends on the value given in scales
.
The function has been extensively tested on fMRI data, hence, its parameters
have been tuned for this data type. The function might not work well in other
structures, such as time series that are negatively serially correlated.
A list with the following components:
changepoints  The locations of the detected changepoints. 
no.of.cpts  The number of the detected changepoints. 
time_series  A list with two components that indicates which combinations 
of time series are responsible for each changepoint detected. See the outcome  
values time_series_indicator and most_important of the function


match.cpt.ts for more information.

If the minimum distance between the detected changepoints is less than
the value given in min_dist
, then only the number and the locations of
the “pruned” changepoints are returned.
Andreas Anastasiou, anastasiou.andreas@ucy.ac.cy
“Crosscovariance isolate detect: a new changepoint method for estimating dynamic functional connectivity”, Anastasiou et al (2020), preprint <doi:10.1101/2020.12.20.423696>.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25  set.seed(111)
A < matrix(rnorm(20*400), nrow = 400) ## No changepoint
M1 < detect.th(A, approach = 'euclidean', scales = 1)
M2 < detect.th(A, approach = 'infinity', scales = 1)
M1
M2
set.seed(111)
num.nodes < 40 # number of nodes
etaA.1 < 0.95
etaA.2 < 0.05
pcor1 < GeneNet::ggm.simulate.pcor(num.nodes, etaA = etaA.1)
pcor2 < GeneNet::ggm.simulate.pcor(num.nodes, etaA = etaA.2)
n < 100
data1 < GeneNet::ggm.simulate.data(n, pcor1)
data2 < GeneNet::ggm.simulate.data(n, pcor2)
X1 < rbind(data1, data2) ## changepoint at 100
N1 < detect.th(X1, approach = 'euclidean', scales = 1)
N2 < detect.th(X1, approach = 'infinity', scales = 1)
N1$changepoints
N1$time_series
N2$changepoints
N2$time_series

Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.