Learn R Programming

tseriesEntropy (version 0.7-2)

surrogate.ARs: Surrogate Time Series Through A Modeling (Smoothed Sieve Bootstrap)

Description

Starting from a time series x given as input, the function generates surrogate series by means of the smoothed sieve bootstrap. The surrogates can be used for testing for non linearity in time series.

Usage

surrogate.ARs(x, order.max = NULL,
 fit.method = c("yule-walker","burg", "ols", "mle", "yw"), nsurr)

Value

A list with the following elements:

surr

a matrix with N rows and nsurr columns, in each column is stored a surrogate.

call

contains the call to the routine.

Arguments

x

a univariate numeric time series object or a numeric vector.

order.max

maximum order of the AR model to fit. Passed to ar.

fit.method

character string giving the method used to fit the AR model. It is passed to ar and has to be one of the strings in the default argument (partial matching works). Defaults to "yule-walker".

nsurr

number of surrogates.

Author

Simone Giannerini<simone.giannerini@unibo.it>

Details

Let N be the length of the series x. The best AR model is chosen by means of the AIC criterion. Surrogate series are obtained by driving the fitted model with the smoothed resampled residuals. Smoothing is performed through Kernel density estimation with a Gaussian Kernel by using the dafaults of density.

References

Giannerini S., Maasoumi E., Bee Dagum E., (2015), Entropy testing for nonlinear serial dependence in time series, Biometrika, 102(3), 661--675 tools:::Rd_expr_doi("10.1093/biomet/asv007").

Bickel, P., Buhlmann, P., (1999). A new mixing notion and functional central limit theorems for a sieve bootstrap in time series. Bernoulli 5, 413--446.

See Also

See also surrogate.AR, Trho.test.AR, surrogate.SA, Trho.test.SA.

Examples

Run this code
set.seed(1345)
# Generates a AR(1) series
x      <- arima.sim(n=120, model = list(ar=0.8));
x.surr <- surrogate.ARs(x, order.max=NULL, nsurr=3);
plot.ts(x.surr$surr,col=4);


## Check that the surrogates have the same ACF of x
corig <- acf(x,10,plot=FALSE)$acf[,,1];
csurr <- acf(x.surr$surr[,1],10,plot=FALSE)$acf[,,1];
round(cbind(corig,csurr,"abs(difference)"=abs(corig-csurr)),3)

Run the code above in your browser using DataLab