poincareMap: Create a Poincare map

Description Usage Arguments Details Value References See Also Examples


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


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



a vector holding a scalar time series.


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


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


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


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


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


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


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


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

See Also

embedSeries, corrDim, infoDim.


## 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)

Search within the fractal package
Search all R packages, documentation and source code

Questions? Problems? Suggestions? or email at ian@mutexlabs.com.

Please suggest features or report bugs with the GitHub issue tracker.

All documentation is copyright its authors; we didn't write any of that.