# bootstrap

##### Bootstrap for General Stationary Data

`bootstrap`

generates bootstrap samples for general stationary
data and computes the bootstrap estimate of standard error and bias
if a statistic is given.

- Keywords
- ts

##### Usage

```
bootstrap(x, nb = 1, statistic = NULL, b = NULL,
type = c("stationary","block"), ...)
```

##### Arguments

- x
- a numeric vector or time series giving the original data.
- nb
- the number of bootstrap series to compute.
- statistic
- a function which when applied to a time series returns a vector containing the statistic(s) of interest.
- b
- if
`type`

is`"stationary"`

, then`b`

is the mean block length. If`type`

is`"block"`

, then`b`

is the fixed block length. - type
- the type of bootstrap to generate the simulated time
series. The possible input values are
`"stationary"`

(stationary bootstrap with mean block length`b`

) and`"block"`

(blockwise bootstrap with block length - ...
- additional arguments for
`statistic`

which are passed unchanged each time`statistic`

is called.

##### Details

If `type`

is `"stationary"`

, then the stationary
bootstrap scheme with mean block length `b`

according to Politis
and Romano (1994) is used to generate the simulated series. For
`type`

equals `"block"`

, the blockwise bootstrap with block
length `b`

according to Kuensch (1989) is used.

Note, that this bootstrap procedure does not implement the block of
blocks bootstrap. Hence, it may only be used for symmetric statistics,
i.e., for statistics which are invariant under permutations of
`x`

.
For consistency, the (mean) block length `b`

should grow with
`n`

at an appropriate rate. If `b`

is not given, then a
default growth rate of `const * n^(1/3)`

is used (`n`

is the
number of observations in `x`

). This rate is "optimal" under
certain conditions (see the references for more details). However, in
general the growth rate depends on the specific properties of the
process which has generated `x`

. Therefore, a default value for
`const`

has been determined by a Monte Carlo simulation using a
Gaussian AR(1) process (AR(1)-parameter of 0.5, 500
observations). `const`

has been chosen such that the mean square
error for the bootstrap estimate of the variance of the empirical mean
is minimized.

Missing values are not allowed.

There is a special print method for objects of class
`"resample.statistic"`

which by default uses
`max(3, getOption("digits") - 3)`

digits to format real numbers.

##### Value

- If
`statistic`

is`NULL`

, then it returns a matrix or time series with`nb`

columns and`length(x)`

rows containing the bootstrap data. Each column contains one bootstrap 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 bootstrap estimate of the bias of `statistic`

.se the bootstrap estimate of the standard error of `statistic`

.call the original call of `bootstrap`

.

##### References

H. R. Kuensch (1989):
The Jackknife and the Bootstrap for General Stationary Observations.
*The Annals of Statistics* **17**, 1217--1241.

D. N. Politis and J. P. Romano (1994):
The Stationary Bootstrap.
*Journal of the American Statistical Association* **89**,
1303--1313.

##### See Also

##### Examples

```
n <- 500 # Generate AR(1) process
a <- 0.6
e <- rnorm(n+100)
x <- double(n+100)
x[1] <- rnorm(1)
for(i in 2:(n+100)) {
x[i] <- a * x[i-1] + e[i]
}
x <- ts(x[-(1:100)])
bootstrap(x, nb=500, statistic=mean) # ok
bootstrap(x, nb=500, statistic=mean, type="block", b=1) # wrong here
# std. error for mean should approximately be
sqrt(1/(n*(1-a)^2))
```

*Documentation reproduced from package tseries, version 0.8-3, License: GPL (see file COPYING), except for ./src/muin2ser.f and ./misc which are free for non-commercial purposes. See file README for details.*