Generates block bootstrap samples for time series data, preserving temporal dependence structure. Uses non-overlapping blocks of specified length with random block selection with replacement.
block_bootstrap(X, n_boot, block_length = NULL, seed = NULL)A 3-dimensional array of dimension (nrow(X), ncol(X), n_boot) containing the bootstrap samples.
Matrix where rows are time points and columns are variables.
Number of bootstrap samples to generate.
Length of each block. If NULL, defaults to
ceiling(sqrt(nrow(X))).
Optional random seed for reproducibility.
For multivariate series, blocks are sampled synchronously across all variables to preserve cross-sectional dependence. This is critical when bootstrap samples are used to construct confidence intervals for statistics that depend on the joint distribution.
Block bootstrapping is essential for time series data to preserve the autocorrelation structure within blocks. The procedure:
Divides the original series into blocks of length L
Randomly samples blocks with replacement
Concatenates sampled blocks to form each bootstrap sample
The default block length of \(\sqrt{T}\) balances capturing dependence structure against having sufficient blocks for resampling variation.
Kunsch, H. R. (1989). The Jackknife and the Bootstrap for General Stationary Observations. The Annals of Statistics, 17(3), 1217-1241.
Politis, D. N., & Romano, J. P. (1994). The Stationary Bootstrap. Journal of the American Statistical Association, 89(428), 1303-1313.