surrogate {tseries} | R Documentation |
Generates ns
surrogate samples from the original data x
and computes the standard error and the bias of statistic
as in
a bootstrap setup, if statistic
is given.
surrogate(x, ns = 1, fft = FALSE, amplitude = FALSE, statistic = NULL, ...)
x |
a numeric vector or time series. |
ns |
the number of surrogate series to compute. |
fft |
a logical indicating whether phase randomized surrogate data is generated. |
amplitude |
a logical indicating whether amplitude-adjusted surrogate data is computed. |
statistic |
a function which when applied to a time series returns a vector containing the statistic(s) of interest. |
... |
Additional arguments for statistic which are
passed unchanged each time it is called. |
If fft
is FALSE
, then x
is mixed in temporal
order, so that all temporal dependencies are eliminated, but the
histogram of the original data is preserved. If fft
is
TRUE
, then surrogate data with the same spectrum as x
is
computed by randomizing the phases of the Fourier coefficients of
x
. If in addition amplitude
is TRUE
, then also
the amplitude distribution of the original series is preserved.
Note, that the interpretation of the computed standard error and bias is different than in a bootstrap setup.
To compute the phase randomized surrogate and the amplitude adjusted data algorithm 1 and 2 from Theiler et al. (1992), pp. 183, 184 are used.
Missing values are not allowed.
If statistic
is NULL
, then it returns a matrix or time
series with ns
columns and length(x)
rows containing the
surrogate data. Each column contains one surrogate sample.
If statistic
is given, then a list of class
"resample.statistic"
with the following elements is returned:
statistic |
the results of applying statistic to each of
the simulated time series. |
orig.statistic |
the results of applying statistic to the
original series. |
bias |
the bias of the statistics computed as in a bootstrap setup. |
se |
the standard error of the statistics computed as in a bootstrap setup. |
call |
the original call of surrogate . |
A. Trapletti
J. Theiler, B. Galdrikian, A. Longtin, S. Eubank, and J. D. Farmer (1992): Using Surrogate Data to Detect Nonlinearity in Time Series, in Nonlinear Modelling and Forecasting, Eds. M. Casdagli and S. Eubank, Santa Fe Institute, Addison Wesley, 163–188.
x <- 1:10 # Simple example surrogate(x) n <- 500 # Generate AR(1) process e <- rnorm(n) x <- double(n) x[1] <- rnorm(1) for(i in 2:n) { x[i] <- 0.4 * x[i-1] + e[i] } x <- ts(x) theta <- function(x) # Autocorrelations up to lag 10 return(acf(x, plot=FALSE)$acf[2:11]) surrogate(x, ns=50, fft=TRUE, statistic=theta)