Surrogate method overview
The method of surrogate data is commonly used in the analysis of dynamical systems. For an overview of surrogate methods, see the recent review by 1.
What is a surrogate realization?
A surrogate realization of a dataset is a dataset that is formed either by shuffling the values of the original dataset in a particular way. There are two main ways of creating the data: constrained realizations and typical realizations 4.
Constrained realizations
Constrained surrogate realizations are formed by shuffling the values of the input data series in a way that retains some property of the original data.
For example, random shuffle surrogates (randomshuffle
) retain the histogram of the data, while AAFT surrogates (aaft
) aim to preserve the periodogram of the original data series.
Typical realizations
Typical surrogate realizations are generated by first fitting a model to the input data, then generating new data from that model.
For example, random phase Fourier surrogates (randomphases
) retain the amplitudes of the original data, but shuffles the phases.
Implemented algorithms
The following surrogate methods are implemented. Function documentation and basic examples are available from the menu. For more details and demonstrations, visit the TimeseriesSurrogates.jl documentation
.
Algorithm | Function | Type | Reference |
---|---|---|---|
Randomly shuffling the values of the dataset | randomshuffle |
Constrained | 3 |
Fourier transform phase surrogates | randomphases |
Typical | |
Fourier transform amplitude surrogates | randomamplitudes |
Typical | |
Amplitude-adjusted Fourier transform surrogates (AAFT) | aaft |
Constrained | 3 |
Iterated amplitude-adjusted Fourier transform surrogates (iAAFT) | iaaft |
Constrained | 2, 4 |
Valid inputs
Random shuffle surrogates may be generated from the following inputs:
AbstractArray{T, 1}
instances (scalar-valued data series).AbstractArray{Number, 2}
instances (multivarate scalar-valued data series), for which surrogates are generated column-wise.Dataset
instances from DynamicalSystems.jl, for which surrogates are generated column-wise.
References
-
Lancaster, G., Iatsenko, D., Pidde, A., Ticcinelli, V., & Stefanovska, A. (2018). Surrogate data for hypothesis testing of physical systems. Physics Reports. https://doi.org/10.1016/j.physrep.2018.06.001 ↩
-
Schreiber, T., & Schmitz, A. (1996). Improved surrogate data for nonlinearity tests. Physical Review Letters, 77(4), 635. https://journals.aps.org/prl/abstract/10.1103/PhysRevLett.77.635 ↩
-
Theiler, J., Eubank, S., Longtin, A., Galdrikian, B., & Doyne Farmer, J. (1992). Testing for nonlinearity in time series: the method of surrogate data. Physica D: Nonlinear Phenomena. https://doi.org/10.1016/0167-2789(92)90102-S ↩↩
-
Theiler, J., & Prichard, D. (1996). Constrained-realization Monte-Carlo method for hypothesis testing. Physica D: Nonlinear Phenomena, 94(4), 221–235. https://www.sciencedirect.com/science/article/pii/0167278996000504 ↩↩