fast.rqa: Function to compute diagonal RQA measures for given time...

Description Usage Arguments Details Value References See Also Examples

View source: R/rqa_diag.R


This function computes results of the RQA from the numeric vector (time series).


fast.rqa(TS, dim = 2, lag = 1, eps, theta = 1, lmin = 3,
  include.TS = FALSE)



the input vector, This should be a numeric vector. (e.g. ts object is also accepted)


integer, embedding dimension. See details for more information. Default is 2.


integer, embedding lag/delay. See details for more information. Default is 1.


double, threshold/neighbourhood size.


integer, Theiler window, number of diagonal lines which should be skipped from the main diagonal.

  • 0 - include main diagonal/LOS into computation

  • 1 - do not include main diagonal.

  • 2 - skip main diagonal and 1 diagonal closest to main diagonal.

  • 3 - etc.

Default is 1.


integer, minimal length of line to be considered for recurrence line. Default is 3


logical, if TRUE input time series will be added to the list of outputs. Default is FALSE.


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 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.


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.


[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


vec.x <- gen.logistic(mu = 3.55, iter = 2000)

res <- fast.rqa(vec.x, dim = 3, lag = 10, eps = 0.3)

Example output

Embedding dimension :  3 
Delay time          :  10 
Thresholds (eps)    :  0.3 
Theiler window      :  1 
Minimal line length :  3 
Total recurrences :  1944896 
Recurrences on diagonal lines :  1944406 
Number of diagonal lines      :  1974 
Recurrences on vertical lines :  0 
Number of vertical lines      :  0 

Recurrence rate (RR)         :  0.496347 
Determinism (DET)            :  0.9997481 
RATIO - DET/RR               :  0.4964721 
Average diagonal line length :  985.0081 
Maximal diagonal line length :  1971 
Divergence (1/MAX)           :  0.0005073567 
Laminarity                   :  0 
Trapping time                :  NaN 
Maximal vertical line length :  1

Chaos01 documentation built on Aug. 21, 2019, 5:10 p.m.

Related to fast.rqa in Chaos01...