{
 "id": "ep3xq5cqw5",
 "slug": "recurrence-quantification-analysis",
 "title": "Recurrence quantification analysis",
 "updated": "2026-10-15",
 "topic_path": [
  {
   "id": "physical",
   "label": "Physical world and mathematics",
   "api_url": "https://www.edgepedia.org/api/v1/topics/physical"
  },
  {
   "id": "physical.math",
   "label": "Mathematics and statistics",
   "api_url": "https://www.edgepedia.org/api/v1/topics/physical.math"
  },
  {
   "id": "physical.math.statistics",
   "label": "Statistics and probability",
   "api_url": "https://www.edgepedia.org/api/v1/topics/physical.math.statistics"
  }
 ],
 "geo": [
  {
   "id": "geo.nongeo.t1946.physical.math.statistics",
   "label": "Non-geographic · 1946 to 2000: Statistics and probability",
   "api_url": "https://www.edgepedia.org/api/v1/geo/geo.nongeo.t1946.physical.math.statistics",
   "path": [
    {
     "id": "geo.nongeo",
     "label": "Non-geographic",
     "api_url": "https://www.edgepedia.org/api/v1/geo/geo.nongeo"
    },
    {
     "id": "geo.nongeo.t1946",
     "label": "Non-geographic · 1946 to 2000",
     "api_url": "https://www.edgepedia.org/api/v1/geo/geo.nongeo.t1946"
    },
    {
     "id": "geo.nongeo.t1946.physical",
     "label": "Physical world and mathematics",
     "api_url": "https://www.edgepedia.org/api/v1/geo/geo.nongeo.t1946.physical"
    },
    {
     "id": "geo.nongeo.t1946.physical.math",
     "label": "Mathematics and statistics",
     "api_url": "https://www.edgepedia.org/api/v1/geo/geo.nongeo.t1946.physical.math"
    },
    {
     "id": "geo.nongeo.t1946.physical.math.statistics",
     "label": "Statistics and probability",
     "api_url": "https://www.edgepedia.org/api/v1/geo/geo.nongeo.t1946.physical.math.statistics"
    }
   ]
  }
 ],
 "excerpt": "Recurrence quantification analysis (RQA) is a nonlinear time-series method that quantifies a recurrence plot into measures such as determinism, laminarity, and entropy, introduced in the 1990s.",
 "snippet": "Recurrence quantification analysis (RQA) is a nonlinear time-series method that quantifies a recurrence plot into measures such as determinism, laminarity, and entropy, introduced in the 1990s.",
 "node": "physical.math.statistics",
 "markdown": "# Recurrence quantification analysis\n\nRecurrence quantification analysis (RQA) is a nonlinear time-series method that converts a [recurrence plot](https://www.edgepedia.org/recurrence-plot) into numbers, such as determinism, laminarity, and entropy, that characterize the dynamics underlying a measured series. The approaches based on recurrence plots are collectively referred to as RQA, and they quantify diagonal and vertical line structures that reflect repeated states and laminar phases.<sup>[1](https://www.mdpi.com/2571-631X/2/4/21)</sup> The method works with nominal, ordinal, or interval-scale data, makes no distributional assumptions, and is robust to outliers and non-stationarity.<sup>[2](https://www.frontiersin.org/journals/psychology/articles/10.3389/fpsyg.2018.02232/full)</sup>\n\n| Key fact | Detail |\n|---|---|\n| Core object | The recurrence matrix \\( R_{i,j}(\\varepsilon) = \\Theta(\\varepsilon - \\|x_i - x_j\\|) \\), a Heaviside function of phase-space distances<sup>[3](https://doi.org/10.1016/j.physrep.2006.11.001)</sup> |\n| Main measures | Recurrence rate, determinism, laminarity, trapping time, divergence, and diagonal-line entropy<sup>[4](https://journal.r-project.org/articles/RJ-2021-062/RJ-2021-062.pdf)</sup><sup> • </sup><sup>[5](https://tocsy.pik-potsdam.de/CRPtoolbox/crp_man.pdf)</sup> |\n| Determinism range | 0 to 1; a sinusoid gives 1, a purely stochastic signal a value extremely close to 0<sup>[1](https://www.mdpi.com/2571-631X/2/4/21)</sup> |\n| Length needed | About 50–100 data points for univariate RQA<sup>[1](https://www.mdpi.com/2571-631X/2/4/21)</sup>; as few as 10–30 for cross-recurrence analysis<sup>[2](https://www.frontiersin.org/journals/psychology/articles/10.3389/fpsyg.2018.02232/full)</sup> |\n| Threshold guidance | At least five times the noise standard deviation, \\( \\varepsilon > 5\\sigma \\)<sup>[3](https://doi.org/10.1016/j.physrep.2006.11.001)</sup>; recurrence rate targets of 5–10%<sup>[1](https://www.mdpi.com/2571-631X/2/4/21)</sup> or 1–5% (up to 10%)<sup>[6](https://link.springer.com/article/10.1140/epjs/s11734-026-02338-3)</sup> are both advocated |\n| Computational cost | \\( O(N^{2}) \\) time and space for the \\( N \\times N \\) recurrence matrix<sup>[7](https://arxiv.org/pdf/2409.04110)</sup> |\n| Software | CRP Toolbox (MATLAB)<sup>[8](https://tocsy.pik-potsdam.de/CRPtoolbox/)</sup>, crqa (R)<sup>[4](https://journal.r-project.org/articles/RJ-2021-062/RJ-2021-062.pdf)</sup>, PyRQA<sup>[7](https://arxiv.org/pdf/2409.04110)</sup>, AccRQA<sup>[6](https://link.springer.com/article/10.1140/epjs/s11734-026-02338-3)</sup> |\n\n## How it works\n\nA recurrence plot is an array of dots in an \\( N \\times N \\) square, where a dot is placed at \\( (i, j) \\) whenever \\( x(j) \\) is sufficiently close to \\( x(i) \\).<sup>[9](https://iopscience.iop.org/article/10.1209/0295-5075/4/9/004/pdf)</sup> Formally, the scalar series is time-delay embedded into vectors \\( x_i \\) in an \\( m \\)-dimensional phase space, and the recurrence matrix is \\( R_{i,j}(\\varepsilon) = \\Theta(\\varepsilon - \\|x_i - x_j\\|) \\).<sup>[3](https://doi.org/10.1016/j.physrep.2006.11.001)</sup> Diagonal lines reflect repetitions of trajectories, while vertical lines mark states during which the series slows down, that is, laminar phases.<sup>[4](https://journal.r-project.org/articles/RJ-2021-062/RJ-2021-062.pdf)</sup>\n\nThe standard measures are defined from the line-length histograms \\( P(l) \\) and \\( P(v) \\). Determinism is the fraction of recurrence points on diagonal lines of at least length \\( l_{\\min} \\): \\( \\mathrm{DET} = \\sum_{l=l_{\\min}}^{N} l\\,P(l) \\, / \\, \\sum_{l=1}^{N} l\\,P(l) \\).<sup>[3](https://doi.org/10.1016/j.physrep.2006.11.001)</sup> Laminarity is the analogous fraction for vertical lines, \\( \\mathrm{LAM} = \\sum_{v=v_{\\min}}^{N} v\\,P(v) \\, / \\, \\sum_{v=1}^{N} v\\,P(v) \\), and divergence is \\( \\mathrm{DIV} = 1/L_{\\max} \\), the inverse of the longest diagonal line, with the line of identity (and any chosen Theiler window) excluded so that it does not force \\( L_{\\max} \\) to equal the series length.<sup>[5](https://tocsy.pik-potsdam.de/CRPtoolbox/crp_man.pdf)</sup> The entropy of the diagonal-line distribution, \\( \\mathrm{ENTR} = -\\sum_{l=l_{\\min}}^{N} p(l) \\ln p(l) \\) with \\( p(l) = P(l)/N_l \\), measures the variety of line lengths.<sup>[3](https://doi.org/10.1016/j.physrep.2006.11.001)</sup> Trapping time (TT) is the average duration of a laminar phase.<sup>[10](https://complexity-methods.github.io/book/continous-rqa-measures.html)</sup> A high determinism with high diagonal-line entropy indicates a meta- or multi-stable regime, whereas high determinism with low entropy indicates a relatively stable regime.<sup>[10](https://complexity-methods.github.io/book/continous-rqa-measures.html)</sup> There is no specific guideline for choosing \\( l_{\\min} \\); \\( l_{\\min} = 1 \\) yields DET of 100%, and \\( l_{\\min} = 4 \\) is usually an appropriate choice.<sup>[11](https://www.sciencedirect.com/science/article/pii/S0895717710001986)</sup>\n\n## How it is done\n\nThe analysis proceeds in four parameter choices. The embedding dimension \\( m \\) is estimated with the false nearest neighbors algorithm, and the delay \\( \\tau \\) with the autocorrelation function, although the first minimum of the self-mutual information function is preferable.<sup>[1](https://www.mdpi.com/2571-631X/2/4/21)</sup> The threshold \\( \\varepsilon \\) is the hardest choice: rules of thumb include a few per cent of the maximum phase space diameter, not exceeding 10% of the mean or maximum diameter, keeping the recurrence rate near 1% of points,<sup>[3](https://doi.org/10.1016/j.physrep.2006.11.001)</sup> or setting \\( \\varepsilon \\) to the 5%-quantile of the distance distribution, which gives a 5% recurrence rate and robust characteristics across embedding dimensions.<sup>[7](https://arxiv.org/pdf/2409.04110)</sup> With observational noise of standard deviation \\( \\sigma \\), \\( \\varepsilon \\) should satisfy \\( \\varepsilon > 5\\sigma \\).<sup>[3](https://doi.org/10.1016/j.physrep.2006.11.001)</sup>\n\nRecurrence-based approaches perform reasonably well even when the series is short, about 50–100 data points,<sup>[1](https://www.mdpi.com/2571-631X/2/4/21)</sup> and cross-recurrence analyses can be used with as few as 10–30 points.<sup>[2](https://www.frontiersin.org/journals/psychology/articles/10.3389/fpsyg.2018.02232/full)</sup> The recurrence matrix requires an \\( N \\times N \\) pairwise test, so costs are \\( O(N^{2}) \\), with quantification usually adding a further \\( O(N^{2}) \\).<sup>[7](https://arxiv.org/pdf/2409.04110)</sup> If the threshold is zero, the recurrence rate and diagonal-line measures such as determinism can be obtained in \\( O(N \\log(N)) \\) time and \\( O(N) \\) space, and approximations with the same reduced complexity exist for \\( \\varepsilon > 0 \\).<sup>[12](https://publications.pik-potsdam.de/rest/items/item_20541_2/component/file_20542/content)</sup> Approximative RQA computes series longer than 1 million points in seconds, where standard single-thread calculations need hours,<sup>[7](https://arxiv.org/pdf/2409.04110)</sup> and crqa's auto-RQA path scales to series with \\( N \\gg 10^{5} \\) with negligible memory footprint.<sup>[13](https://morenococo.r-universe.dev/crqa/doc/manual.html)</sup>\n\nSoftware implementations cover the main languages. The CRP Toolbox provides MATLAB routines for recurrence plots, phase-space reconstruction, extended RQA, recurrence networks, cross recurrence plots, and joint recurrence plots.<sup>[8](https://tocsy.pik-potsdam.de/CRPtoolbox/)</sup> The R package crqa unifies univariate, cross, windowed, and multivariate analysis, with semi-automatic parameter estimation (optimizeParam) and a piecewiseRQA function for long series.<sup>[4](https://journal.r-project.org/articles/RJ-2021-062/RJ-2021-062.pdf)</sup> Python users have recurrence_python,<sup>[14](https://github.com/bmfreis/recurrence_python)</sup> PyRQA, and the AccRQA library.<sup>[6](https://link.springer.com/article/10.1140/epjs/s11734-026-02338-3)</sup> RecurrenceAnalysis.jl provides equivalent functions in Julia.<sup>[15](https://juliadynamics.github.io/RecurrenceAnalysis.jl/stable/quantification/)</sup>\n\n## Origin\n\nThe recurrence plot is a graphical tool for measuring the time constancy of dynamical systems, useful also when the assumptions needed for computing quantities such as information dimension, entropy, and Lyapunov exponents are not satisfied.<sup>[9](https://iopscience.iop.org/article/10.1209/0295-5075/4/9/004/pdf)</sup> RQA was developed to characterize the behavior of time series with nonlinear dynamics and is described as particularly versatile; published accounts credit its introduction to different years, 1992<sup>[4](https://journal.r-project.org/articles/RJ-2021-062/RJ-2021-062.pdf)</sup> and 1994.<sup>[16](https://pure.mpg.de/rest/items/item_2425151_8/component/file_2505092/content)</sup> The field was consolidated in the review \"Recurrence plots for the analysis of complex systems\" by Norbert Marwan and colleagues in [Physics Reports](https://www.edgepedia.org/physics-reports) in 2007.<sup>[3](https://doi.org/10.1016/j.physrep.2006.11.001)</sup>\n\n## Variants\n\nCross-recurrence quantification analysis extends the univariate method to two time series, quantifying temporal coupling or similarity; the cross-recurrence matrix is \\( CR_{i,j} = \\Theta(\\varepsilon - \\|x_i - y_j\\|) \\), and unlike a recurrence plot it need not contain the line of identity.<sup>[4](https://journal.r-project.org/articles/RJ-2021-062/RJ-2021-062.pdf)</sup> Further extensions include joint-recurrence plots for multivariate data and windowed-, meta-, weighted, fuzzy, and order-pattern recurrence plots.<sup>[1](https://www.mdpi.com/2571-631X/2/4/21)</sup> Order-pattern recurrence plots omit the need for selecting a threshold \\( \\varepsilon \\), which cannot be estimated easily.<sup>[17](http://www.dimigen.de/docs/Schinkel.et.al.2009.PhysLettA.pdf)</sup> For categorical series, an area-based entropy (catH) based on the distribution of rectangular structures in the plot provides more accurate entropy estimation than classic diagonal-line entropy.<sup>[4](https://journal.r-project.org/articles/RJ-2021-062/RJ-2021-062.pdf)</sup> Averaged RQA computes measures over a range of thresholds (in fact recurrence rates) to omit the threshold choice, using a GPU algorithm and data with lengths from \\( 10^{2} \\) to \\( 10^{5} \\).<sup>[18](https://epjst.epj.org/articles/epjst/abs/2023/01/11734_2022_Article_686/11734_2022_Article_686.html)</sup> In 2025, Felipe Eduardo Lopes da Cruz and colleagues introduced recurrence microstate analysis (RMA) in [Physical Review E](https://www.edgepedia.org/physical-review-e), deriving determinism and laminarity from distributions of small \\( 3 \\times 3 \\) submatrices of the recurrence plot; the values are equivalent to the traditional line-based ones while sampling only about 5% of microstates, which avoids generating the full plot and enables real-time quantification.<sup>[19](https://doi.org/10.1103/physreve.111.044212)</sup>\n\n## Applications\n\nRecurrence plots have been applied in astrophysics, earth sciences, engineering, biology, cardiology, and neuroscience.<sup>[3](https://doi.org/10.1016/j.physrep.2006.11.001)</sup> CRQA, diagonal cross-recurrence profiles (DCRP), and multidimensional RQA (MdRQA) are widely used in the cognitive and social sciences for time-dependent behavioral and neurophysiological processes.<sup>[2](https://www.frontiersin.org/journals/psychology/articles/10.3389/fpsyg.2018.02232/full)</sup> Recurrence plots have been combined with convolutional neural networks for classification and time-series prediction, and with machine learning for transition detection, monitoring, and anomaly detection.<sup>[7](https://arxiv.org/pdf/2409.04110)</sup> In gravitational physics, RQA applied to 22 simulated binary neutron star coalescences distinguished inspiral, merger, and post-merger stages with statistical validation at \\( p < 0.05 \\).<sup>[20](https://link.springer.com/article/10.1140/epjs/s11734-026-02538-x)</sup>\n\n## Limitations and alternatives\n\nHigh determinism is a necessary but not sufficient condition for determinism: the non-deterministic auto-regressive process \\( x_{i} = 0.8x_{i-1} + 0.3x_{i-2} - 0.25x_{i-3} + 0.9\\xi \\), with \\( \\xi \\) white Gaussian noise, yields DET of 0.6 at embedding dimension 4, delay 4, and fixed recurrence rate 0.1.<sup>[21](https://ar5iv.labs.arxiv.org/html/1007.2215)</sup> [Embedding](https://www.edgepedia.org/embedding) introduces spurious diagonal lines even in uncorrelated white noise, and low-pass filtering can also create spurious line structures, so a high DET alone must not be read as determinism.<sup>[21](https://ar5iv.labs.arxiv.org/html/1007.2215)</sup> Threshold selection is a key problem across disciplines<sup>[22](https://publications.pik-potsdam.de/rest/items/item_22560_5/component/file_24223/content)</sup> and a trade-off between a small threshold and a sufficient number of recurrences and recurrence structures.<sup>[21](https://ar5iv.labs.arxiv.org/html/1007.2215)</sup> The TREND measure is very sensitive to window size and can reveal contrary results, and detected nonstationarity in a finite series does not imply nonstationarity of the underlying system.<sup>[21](https://ar5iv.labs.arxiv.org/html/1007.2215)</sup> Standard practice provides no confidence bounds for DET or LAM, although a bootstrap method that resamples the line distributions \\( P(l) \\) and \\( P(v) \\) supplies confidence intervals at virtually no extra cost.<sup>[17](http://www.dimigen.de/docs/Schinkel.et.al.2009.PhysLettA.pdf)</sup> Interpreting \\( \\mathrm{DIV} = 1/L_{\\max} \\) as an estimator of the maximal [Lyapunov exponent](https://www.edgepedia.org/lyapunov-exponent) incorporates, in the words of that critique, \"high potential of erroneous conclusions derived from RQA\".<sup>[21](https://ar5iv.labs.arxiv.org/html/1007.2215)</sup> The short-series advantage holds only for the heuristic RQA measures; estimating dynamical invariants from recurrence plots still requires long time series.<sup>[21](https://ar5iv.labs.arxiv.org/html/1007.2215)</sup>\n\n## References\n\n1. [A Brief Introduction to Nonlinear Time Series Analysis and Recurrence Plots](https://www.mdpi.com/2571-631X/2/4/21)\n2. [Analyzing Multivariate Dynamics Using CRQA, DCRP, and MdRQA – A Tutorial in R](https://www.frontiersin.org/journals/psychology/articles/10.3389/fpsyg.2018.02232/full)\n3. [N MARWAN and colleagues (2007). Recurrence plots for the analysis of complex systems. Physics Reports.](https://doi.org/10.1016/j.physrep.2006.11.001)\n4. [Methods for Recurrence Quantification (crqa package, R Journal)](https://journal.r-project.org/articles/RJ-2021-062/RJ-2021-062.pdf)\n5. [Cross Recurrence Plot Toolbox manual](https://tocsy.pik-potsdam.de/CRPtoolbox/crp_man.pdf)\n6. [AccRQA library: accelerating recurrence quantification analysis (EPJ ST)](https://link.springer.com/article/10.1140/epjs/s11734-026-02338-3)\n7. [Recurrence plot review with computational-cost section (arXiv 2409.04110, 2024)](https://arxiv.org/pdf/2409.04110)\n8. [CRP Toolbox](https://tocsy.pik-potsdam.de/CRPtoolbox/)\n9. [Recurrence Plots of Dynamical Systems](https://iopscience.iop.org/article/10.1209/0295-5075/4/9/004/pdf)\n10. [Continuous RQA measures (The Complex Systems Approach to Behavioural Science)](https://complexity-methods.github.io/book/continous-rqa-measures.html)\n11. [Comparison of recurrence quantification methods for the analysis of temporal and spatial chaos](https://www.sciencedirect.com/science/article/pii/S0895717710001986)\n12. [Approximate recurrence quantification analysis (Spiegel et al.)](https://publications.pik-potsdam.de/rest/items/item_20541_2/component/file_20542/content)\n13. [Package 'crqa' reference manual](https://morenococo.r-universe.dev/crqa/doc/manual.html)\n14. [bmfreis/recurrence_python](https://github.com/bmfreis/recurrence_python)\n15. [Recurrence Quantification Analysis · RecurrenceAnalysis.jl](https://juliadynamics.github.io/RecurrenceAnalysis.jl/stable/quantification/)\n16. [MPG publication chapter citing Webber & Zbilut (1994) and Takens (1981)](https://pure.mpg.de/rest/items/item_2425151_8/component/file_2505092/content)\n17. [Confidence bounds of recurrence-based complexity measures (Physics Letters A, 2009)](http://www.dimigen.de/docs/Schinkel.et.al.2009.PhysLettA.pdf)\n18. [Averaged recurrence quantification analysis, method omitting the recurrence threshold choice (EPJ ST 232:47-56, 2023)](https://epjst.epj.org/articles/epjst/abs/2023/01/11734_2022_Article_686/11734_2022_Article_686.html)\n19. [Felipe Eduardo Lopes da Cruz and colleagues (2025). Density-based recurrence measures from microstates. Physical review. E.](https://doi.org/10.1103/physreve.111.044212)\n20. [Recurrence quantification analysis for binary neutron star coalescence simulations (EPJ ST)](https://link.springer.com/article/10.1140/epjs/s11734-026-02538-x)\n21. [How to avoid potential pitfalls in recurrence plot based data analysis](https://ar5iv.labs.arxiv.org/html/1007.2215)\n22. [On the appropriate selection of recurrence thresholds in RQA](https://publications.pik-potsdam.de/rest/items/item_22560_5/component/file_24223/content)\n\n---\n*Topic: Encyclopedia › Physical world and mathematics › Mathematics and statistics › Statistics and probability*\n\n*Initially written Sep 29, 2026 · Edited: Oct 15, 2026*\n\n*Copyright 2026 EdgeChat AI, a subsidiary of Biostate AI.*\n\nLicense: Edgepedia Community License 1.0, https://www.edgepedia.org/edgepedia/license\n",
 "same_as": [],
 "url": "https://www.edgepedia.org/recurrence-quantification-analysis",
 "markdown_url": "https://www.edgepedia.org/recurrence-quantification-analysis.md",
 "license": {
  "name": "Edgepedia Community License 1.0",
  "url": "https://www.edgepedia.org/edgepedia/license",
  "summary": "Free with credit, commercial use included. AI training is open to everyone. For other uses, organizations over USD 100M in revenue or 100M monthly users license separately.",
  "spdx": "LicenseRef-Edgepedia-Community-1.0"
 },
 "credit": "\"Recurrence quantification analysis\", Edgepedia (EdgeChat), https://www.edgepedia.org/recurrence-quantification-analysis. Edgepedia Community License 1.0.",
 "credit_md": "\"[Recurrence quantification analysis](https://www.edgepedia.org/recurrence-quantification-analysis)\", Edgepedia (EdgeChat), [https://www.edgepedia.org/recurrence-quantification-analysis](https://www.edgepedia.org/recurrence-quantification-analysis). [Edgepedia Community License 1.0](https://www.edgepedia.org/edgepedia/license).",
 "credit_html": "\"<a href=\"https://www.edgepedia.org/recurrence-quantification-analysis\">Recurrence quantification analysis</a>\", Edgepedia (EdgeChat), <a href=\"https://www.edgepedia.org/recurrence-quantification-analysis\">https://www.edgepedia.org/recurrence-quantification-analysis</a>. <a href=\"https://www.edgepedia.org/edgepedia/license\">Edgepedia Community License 1.0</a>.",
 "speakable": "Recurrence quantification analysis is a nonlinear time-series method that quantifies a recurrence plot into measures such as determinism, laminarity, and entropy, introduced in the 1990s."
}
