# TISEAN 2.0: Table of Contents

### Generating time series

A few routines are provided to generate test data from simple equations. Since there are powerfull packages (for example Dynamics by Helena Nusse and Jim Yorke) that can generate chaotic data, we have only included a minimal selection here.

Make Hénon time series | henon
Make Ikeda time series | ikeda
Run autoregressive model | ar-run
Add noise to data | makenoise, addnoise

### Linear tools

This section contains some rather basic implementations of linear time series methods which are there just for convenience. If you want to embark seriously on linear or spectral analysis of your data, you will have to use any one of the statistical or mathematics packages around. Please, don't judge us by the level of sophistication in this section!

AR model | ar-model
Autocorrelation function | corr, autocor
Autocorrelation function of event times | spikeauto
Power spectrum | mem_spec, spectrum
Power spectrum of event times | spikespec
Notch filter | notch
Wiener filter | wiener
Simple low pass filter | low121

### Utilities

Here are some tools for the pre-processing of data which save you the truble of writing your own five-line Perl, awk, FORTRAN or C programs.

Choose sub-sequence or columns | choose
Normalise, rescale, mean, standard deviation | rescale, rms
Distribution of the data | histogram
Change sampling time | resample
Event/intervcal conversion | intervals
Interval/event conversion | events

### Stationarity

This section contains two important tools for the visualization of time series properties and another stationarity test as proposed by Schreiber. The recurrence plot and the space time separation plot are of great value for the detection of nonstationarity, selection of relevant time scales, selection of stationary episodes and so forth.

There is a short corresponding section in the introduction paper.

Recurrence plot | recurr
Space-time separation plot | stp
Stationarity test | nstat_z

### Embedding and Poincaré sections

Since the concept of phase space is at the heart of all the nonlinear methods in this package, phase space reconstruction plays an important role. Although delay and other embeddings are used inside most of the other programs, it is important to have these techniques also for data viewing, selection of parameters, etc. For delay embeddings, use delay. For principal components, svd and pc do almost the same thing.

Phase space reconstruction is discussed also in the the introduction paper.

Embed using delay coordinates | delay
Embed using principal components | svd, pc
Mutual information of the data | mutual
Poincaré section | poincare
Determine the extrema of a time series | extrema
Unstable periodic orbits | upo, upoembed
False nearest neighbours | false_nearest

### Nonlinear prediction

A number of phase space based prediction techniques are implemented in TISEAN. They differ in the way in which the dynamics is approximated. The very similar programs zeroth and predict use locally constant fits. This is the most robust approach for short, noisy signals, easy handling and quick answers. Further, local linear models, radial basis functions, and polynomial fits are provided.

For a discussion of these methods and examples see the corresponding section of the introduction paper.

Simple nonlinear prediction | zeroth, predict
Local linear model | onestep, nstep
Local vs. global linear prediction | ll-ar
Radial basis function fit | rbf
Polynomial model | polynom, polynomp, polyback, polypar

### Nonlinear noise reduction

This is how the three of us got into this business. Since spectral filters are problematic with chaotic, broad band signals, new techniques were necessary. All the implementations here use phase space projections for noise reduction. The programs nrlazy and lazy use locally constant approximations of the dynamics. Rainers nrlazy corrects the whole embedding vector, while Thomas' lazy corrects only the center point. We haven't quite resolved yet which is preferable. The two routines ghkss and project implement locally linear projections (very similar). Finally, for testing purposes you may want to add noise to data and compare the outcome of your cleaning attempts with the true signal.

The introduction paper has a section on nonlinear noise reduction, too.

Add noise to data | makenoise, addnoise
Compare two data sets | compare
Simple nonlinear noise reduction | nrlazy, lazy
Nonlinear noise reduction | ghkss, project

### Dimension and entropy estimation

If you are looking for a program that reads your signal and issues a number that says "correlation dimension", you got yourself the wrong package. We think you are still better off than getting such a wrong answer. The programs in this section carry out the calculations necessary to detect scaling and self similarity in a fractal attractor. You will have to establish scaling and eventually, in favourable cases, extract the dimension or entropy by careful evaluation of the data produced by these programs.

There are two alternative implementations of the Grassbeger-Procaccia correlation integral in this package. The program d2 by Rainer Hegger to our knowledge is the fastest and most reliable implementation that is currently available. It can also handle multivariate data and mixed embeddings. For the very conservative, there is a slow but simple alternative called c2naive that works on scalar data only. Post-processing can be performed on the output in order to obtain Takens' estimator or the Gaussian kernel correlation integral, or just for smoothing.

A fixed mass algorithm for the information dimension D1 is available and a box-counting implementation of the order Q Renyi entropies for multifractal studies.

You may want to consult the introduction paper for initial material on dimension estimation. If you are serious, you will need to study some of the literature cited there as well.

Correlation integral C2 | d2, av-d2, c2naive, c2d
Takens estimator | c2t
Gaussian kernel C2 | c2g
Fixed mass estiamtion of D1 | c1
Renyi Entropies of Qth order | boxcount

### Lyapunov exponents

Lyapunov exponents are an important means of quantification for unstable systems. They are however difficult to estimate from a time series. Unless low dimensional, high quality data is at hand, one should not attempt to calculate the full spectrum. Try to compute the maximal exponent first. The two implementations differ slightly. While lyap_k implements the formula by Kantz, lyap_r uses that by Rosenstein et al. which differs only in the definition of the neighbourhoods. We recommend to use the former version, lyap_k.

The estimation of Lyapunov exponents is also discussed in the introduction paper. A recent addition is a programm to compute finite time exponents which are not invariant but contain additional information.

Maximal exponent | lyap_k, lyap_r
Lyapunov spectrum | lyap_spec
Finite size exponents | fsle

### Surrogate data

Before attempting any sophisticated nonlinear time series analysis, one should try to establish that nonlinearity is indeed present. The most suitable method for this is the approach of surrogate data. We present two schemes for the generation of surrogate time series, one using iterative adjustments of spectrum and distribution, and a very general framework for constrained randomization that is based on combinatorial minimization of a cost function. The latter approach is more like a toolbox, a starting point for your own ideas on suitable null hypotheses etc. A few basic discriminating statistics are also provided.

There is a short overview page for nonlinearity tests. There is also a section in the introduction paper.

Make surrogate data | surrogates
Determine end-to-end mismatch | endtoend
General constrained randomization | randomize
Discriminating statistics | timerev, predict

### Spike trains

Sequences of times of singular events (heart beats, neuronal spikes etc.), or sequences of intervals between such events (RR-intervals etc.) require specialised techniques, even for their linear analysis. Below find a list of routines that may proove useful for this type of data.

Event/intervcal conversion | intervals
Interval/event conversion | events
Autocorrelation function of event times | spikeauto
Power spectrum of event times | spikespec
Surrogate data preserving event time autocorrelations | randomize_spikeauto_exp_random
Surrogate data preserving event time power spectrum | randomize_spikespec_exp_event

### Multivariate time series

TISEAN's multivariate section is small but growing - like the research body in this area. As a convention, program names for ``cross-'' quantities computed between two signals start with `x` and algorithms using multivariate embeddings start with `m`. Those programs that can handle scalar as well as multivariate data don't follow any name convention.

Currently, three (cross-) similarity measures are available, a linear and two nonlinear ones. Further, there is a zeroth order predictor using multivariate embeddings. A few general routines that can handle multivariate data are also mentioned below. Note in particular the multivariate surrogate data generator and the Grassberger-Procaccia correlation sum.

The general convention for column selection is as follows. Columns can be given as a comma seperated list with the option `-c#[,#]` . Wherever the number of columns is selectable, this can be done with the option `-m#` or the first number in its argument. The precedence of these settings are as follows:

`-m` overrides `-c`
`-c` overrides the default only if more columns are specified.

Linear cross-correlations | xcor
Nonlinear cross-prediction | xzero
Cross-correlation integral | xc2
Correlation integral, also for multivariate data | d2
Zeroth order prediction on multivariate time series | mzeroth
Compare two signals | compare
Choose sub-sequence or columns | choose
Make surrogate data, also multivariate | surrogates
Determine end-to-end mismatch, also multivariate | endtoend

Copyright © Rainer Hegger, Holger Kantz, Thomas Schreiber (1999)

TISEAN home