CalculateMaxLyapunov: Maximum lyapunov exponent

View source: R/CalculateLyapunov.R

CalculateMaxLyapunovR Documentation

Maximum lyapunov exponent

Description

Functions for estimating the maximal Lyapunov exponent of the RR time series.

Usage

CalculateMaxLyapunov(HRVData,
  indexNonLinearAnalysis = length(HRVData$NonLinearAnalysis),
  minEmbeddingDim = NULL, maxEmbeddingDim = NULL, timeLag = NULL,
  radius = 2, theilerWindow = 100, minNeighs = 5, minRefPoints = 500,
  numberTimeSteps = 20, doPlot = TRUE)

EstimateMaxLyapunov(HRVData,
  indexNonLinearAnalysis = length(HRVData$NonLinearAnalysis),
  regressionRange = NULL, useEmbeddings = NULL, doPlot = TRUE)

PlotMaxLyapunov(HRVData,
  indexNonLinearAnalysis = length(HRVData$NonLinearAnalysis), ...)

Arguments

HRVData

Data structure that stores the beats register and information related to it

indexNonLinearAnalysis

Reference to the data structure that will contain the nonlinear analysis

minEmbeddingDim

Integer denoting the minimum dimension in which we shall embed the time series

maxEmbeddingDim

Integer denoting the maximum dimension in which we shall embed the time series. Thus, we shall estimate the correlation dimension between minEmbeddingDim and maxEmbeddingDim.

timeLag

Integer denoting the number of time steps that will be use to construct the Takens' vectors. Default: timeLag = 1

radius

Maximum distance in which will look for nearby trajectories. Default: radius = 2

theilerWindow

Integer denoting the Theiler window: Two Takens' vectors must be separated by more than theilerWindow time steps in order to be considered neighbours. By using a Theiler window, temporally correlated vectors are excluded from the estimations. Default: theilerWindow = 100

minNeighs

Minimum number of neighbours that a Takens' vector must have to be considered a reference point. Default: minNeighs = 5

minRefPoints

Number of reference points that the routine will try to use. The routine stops when it finds minRefPoints reference points, saving computation time. Default: minRefPoints = 500

numberTimeSteps

Integer denoting the number of time steps in which the algorithm will compute the divergence.

doPlot

Logical value. If TRUE (default value), a plot of S(t) Vs t is shown.

regressionRange

Vector with 2 components denoting the range where the function will perform linear regression

useEmbeddings

A numeric vector specifying which embedding dimensions should the algorithm use to compute the maximal Lyapunov exponent.

...

Additional plot parameters.

Details

It is a well-known fact that close trajectories diverge exponentially fast in a chaotic system. The averaged exponent that determines the divergence rate is called the Lyapunov exponent (usually denoted with \lambda). If \delta(0) is the distance between two Takens' vectors in the embedding.dim-dimensional space, we expect that the distance after a time t between the two trajectories arising from this two vectors fulfills:

\delta (n) \sim \delta (0)\cdot exp(\lambda \cdot t)

The lyapunov exponent is estimated using the slope obtained by performing a linear regression of S(t)=\lambda \cdot t \sim log(\delta (t)/\delta (0)) on t. S(t) will be estimated by averaging the divergence of several reference points.

The user should plot S(t) Vs t when looking for the maximal lyapunov exponent and, if for some temporal range S(t) shows a linear behaviour, its slope is an estimate of the maximal Lyapunov exponent per unit of time. The estimate routine allows the user to get always an estimate of the maximal Lyapunov exponent, but the user must check that there is a linear region in the S(t) Vs t. If such a region does not exist, the estimation should be discarded. The user should also run the method for different embedding dimensions for checking if D_1 saturates.

Value

The CalculateMaxLyapunov returns a HRVData structure containing the divergence computations of the RR time series under the NonLinearAnalysis list.

The EstimateMaxLyapunov function estimates the maximum Lyapunov exponent of the RR time series by performing a linear regression over the time steps' range specified in regressionRange.If doPlot is TRUE, a graphic of the regression over the data is shown. The results are returned into the HRVData structure, under the NonLinearAnalysis list.

PlotMaxLyapunov shows a graphic of the divergence Vs time

Note

This function is based on the maxLyapunov function from the nonlinearTseries package.

In order to run EstimateMaxLyapunov, it is necessary to have performed the divergence computations before with ComputeMaxLyapunov.

References

Eckmann, Jean-Pierre and Kamphorst, S Oliffson and Ruelle, David and Ciliberto, S and others. Liapunov exponents from time series. Physical Review A, 34-6, 4971–4979, (1986).

Rosenstein, Michael T and Collins, James J and De Luca, Carlo J.A practical method for calculating largest Lyapunov exponents from small data sets. Physica D: Nonlinear Phenomena, 65-1, 117–134, (1993).

See Also

maxLyapunov

Examples

## Not run: 
# ...
hrv.data = CreateNonLinearAnalysis(hrv.data)
hrv.data = CalculateMaxLyapunov(hrv.data,indexNonLinearAnalysis=1,
                                 minEmbeddingDim=5,
                                 maxEmbeddingDim = 5,
                                 timeLag=1,radius=10,
                                 theilerWindow=100, doPlot=FALSE)
PlotMaxLyapunov(hrv.data,indexNonLinearAnalysis=1)
hrv.data = EstimateMaxLyapunov(hrv.data,indexNonLinearAnalysis=1, 
                               regressionRange=c(1,10))

## End(Not run)

RHRV documentation built on Jan. 16, 2024, 3:05 a.m.