fast.rqa {Chaos01} | R Documentation |
Function to compute diagonal RQA measures for given time series
Description
This function computes results of the RQA from the numeric vector (time series).
Usage
fast.rqa(TS, dim = 2, lag = 1, eps, theta = 1, lmin = 3,
include.TS = FALSE)
Arguments
TS |
the input vector, This should be a numeric vector. (e.g. ts object is also accepted) |
dim |
integer, embedding dimension. See details for more information. Default is 2. |
lag |
integer, embedding lag/delay. See details for more information. Default is 1. |
eps |
double, threshold/neighbourhood size. |
theta |
integer, Theiler window, number of diagonal lines which should be skipped from the main diagonal.
Default is 1. |
lmin |
integer, minimal length of line to be considered for recurrence line. Default is 3 |
include.TS |
logical, if TRUE input time series will be added to the list of outputs. Default is FALSE. |
Details
RQA analysis tool is included in this package because '0-1 test for chaos' can determine whether the dynamics of the system is chaotic or regular, but cannot distinguish between chaotic and random dynamics.
It should be possible to determine whether the system si deterministic or not based on the evolution of RQA measure with increasing thresholds 'eps'. For this it is necessary to compute RQA many times and therefore this
fast version of RQA computation is provided. To further improve workflow in examining the system rqa.seq
is provided to compute RQA for sequence of 'eps' values and resulting object can be easily visualized by the plot function.
This version of RQA is based on the optimized algorithms for RQA computation given at https://code.it4i.cz/ADAS/RQA_HPC. Main difference is in reduction of the memory complexity by not storing histogram. Due to this Shannon entropy is not computed,
but the algorithm is faster. Additionally, distance metric is set to the maximum distance. This is due to the fact, that for eps = diff(range(TS)), all the points will be counted as the recurrences. This fact is used when
studying the characteristics of the time series dependent on the 'eps' value using the rqa.seq
function.
Usually, RQA is computed from a state-space reconstruction of the dynamical system. In this case Takens embedding is used [3]. It is necessary to set two parameters for Takens embedding: embeding dimension and delay time. If You have no prior knowledge about the system, it is possible to estimate best values for these parameters according to the first minimal value of the mutual information of the time series and the minimal value of the false nearest neighbour algorithm. These routines can be found in e.g. 'nonlinearTseries' package and 'fNonlinear' package.
There are other ways how to test whether the data have non-linear characteristics, have stochastic nature, or are just colored noise. To this end You can use tests included in 'nonlinearTseries' package or 'fNonlinear' package. 'nonlinearTseries' package also include RQA function, which stores more results, but are significantly slower and memory expensive, especially for the longer time series. Similar test could be found in other packages focused on nonlinear time series analysis.
Value
Returns "chaos01.rqa" object (to differentiate from the 'rqa' object given by the 'nonlinearTseries' package), which contains list of RQA results and list of settings. Additionaly, if include.TS = TRUE, it adds input time series to the end of the list.
"RR" - Recurrence rate
"DET" - Determinism, count recurrence points in diagonal lines of length >= lmin
"RATIO" - DET/RR
"AVG" - average length of diagonal lines of length >= lmin
"MAX" - maximal length of diagonal lines of length >= lmin
"DIV" - Divergence, 1/MAX
"LAM" - Laminarity, VLRP/TR
"TT" - Trapping time, average length of vertical lines of length >= lmin
"MAX_V" - maximal length of vertical lines of length >= lmin
"TR" - Total number of recurrence points
"DLRP" - Recurrence points on the diagonal lines of length of length >= lmin
"DLC" - Count of diagonal lines of length of length >= lmin
"VLRP" - Recurrence points on the vertical lines of length of length >= lmin
"VLC" - Count of vertical lines of length of length >= lmin
References
[1] Marwan; M. C. Romano; M. Thiel; J. Kurths (2007). "Recurrence Plots for the Analysis of Complex Systems". Physics Reports. 438 (5-6): 237. Bibcode:2007PhR...438..237M. doi:10.1016/j.physrep.2006.11.001.
[2] Zbilut, J.; Webber C., L. (2006). "Recurrence Quantification Analysis". Wiley Encylopedia of Biomedical Engineering, SN: 9780471740360, doi: 10.1002/9780471740360.ebs1355
[3] F. Takens (1981). "Detecting strange attractors in turbulence". In D. A. Rand and L.-S. Young. Dynamical Systems and Turbulence, Lecture Notes in Mathematics, vol. 898. Springer-Verlag. pp. 366–381.
See Also
rqa.seq
, plot.chaos01.rqa.sequence
, summary.chaos01.rqa
Examples
vec.x <- gen.logistic(mu = 3.55, iter = 2000)
res <- fast.rqa(vec.x, dim = 3, lag = 10, eps = 0.3)
summary(res)