Learn R Programming

fractal (version 2.0-4)

poincareMap: Create a Poincare map

Description

Create a map using the extrema of a scalar time series.

Usage

poincareMap(x, extrema="min", denoise=FALSE)

Arguments

x

a vector holding a scalar time series.

denoise

a logical value. If TRUE, the data is first denoised via waveshrink prior to analysis. Default: FALSE.

extrema

the type of extrema desired. May be "min" for minima, "max" for maxima, or "all" for both maxima and minima. Default: "min".

Value

a list where the first element (location) is a vector containing the temporal locations of the extrema values, with respect to sample numbers \(1,\ldots,N\), where \(N\) is the length of the original time series. The second element (amplitude) is a vector containing the extrema amplitudes.

Details

This function finds the extrema of a scalar time series to form a map. The time series is assumed to be a uniform sampling of \(s(t)\), where \(s(t)\) is a (possibly noisy) measurement from a deterministic non-linear system. It is known that \(s'(t),$ $s''(t),\,\ldots\) are legitimate coordinate vectors in the phase space. Hence the hyperplane given by \(s'(t)=0\) may be used as a Poincare surface of section. The intersections with this plane are exactly the extrema of the time series. The time series minima (or maxima) are the interesections in a given direction and form a map that may be used to estimate invariants, e.g., correlation dimension and Lyapunov exponents, of the underlying non-linear system.

The algorithm used to create a Poincare map is as follows.

1

The first and second derivatives of the resulting series are approximated via the continuous wavelet transform (CWT) using the first derivative of a Gaussian as a mother wavelet filter (see references for details).

2

The locations of the local extrema are then estimated using the standard first and second derivative tests on the CWT coefficients at a single and appropriate scale (an appropriate scale is one that is large enough to smooth out noisy components but not so large as to the oversmooth the data).

3

The extrema locations are then fit with a quadratic interpolation scheme to estimate the amplitude of the extrema using the original time series.

References

Holger Kantz and Thomas Schreiber, Nonlinear Time Series Analysis, Cambridge University Press, 1997.

See Also

embedSeries, corrDim, infoDim.

Examples

Run this code
# NOT RUN {
## Using the third coordinate (\eqn{z} state) of a 
## chaotic Lorenz system, form a discrete map 
## using the series maxima. Embed the resulting 
## extrema in a 2-dimensional delay embedding 
## (with delay=1 for a map). The resulting plot 
## reveals a tent map structure common to 
## Poincare sections of chaotic flows. 
z <- poincareMap(lorenz[,3], extrema="max")
z <- embedSeries(z$amplitude, tlag=1, dimension=2)
plot(z, pch=1, cex=1)
# }

Run the code above in your browser using DataLab