Surrogate data testing

A simple (one sided) surrogate data test for data in file file, using a prediction error statistic, can be made with a sequence of commands similar to the following. First select a sub-sequence without large endpoint effect:
> endtoend file
Suppose, the full data of length 1000 gave a 17% end effect, but a truncated length of 972 and offset 80 the effect was reduced to 0.2%. To choose that sub-sequence:
> choose -o selected.dat -x80 -l972 file
Here is the actual test:
> surrogates -o -n19 selected.dat
> predict -o -d1 -m3 -v0.1 selected.dat selected.dat_surr_??? | sort -nr
If the line of output corresponding to selected.dat is the last, the null hypothesis of a stationary, possibly rescaled, linear Gaussian random process may be rejected at the 95% level of significance, since the prediction error of the data is found to be smaller than that of the surrogates.

Or for a two sided test using time reversal symmetry statistic:

> surrogates -n39 selected.dat
> timerev -d1 selected.dat selected.dat_surr_??? | sort -nr
If the line of output corresponding to selected.dat is the last or the first, the null hypothesis of a stationary, possibly rescaled, linear Gaussian random process may be rejected at the 95% level of significance, since the time asymmetry of the data is found to be significantly different from that of the surrogates.

Test statistics can be derived from many of the programs given, including prediction errors (predict), third order statistics (timerev), correlation sums (c2), as well as unstable periodic orbits (upo).

Surrogate data are made by surrogates, or by a version of randomize.

Table of Contents * TISEAN home