arch.bootstrap.CircularBlockBootstrap¶
-
class arch.bootstrap.CircularBlockBootstrap(block_size: int, *args: ndarray | DataFrame | Series, seed: int | Generator | RandomState | None =
None, **kwargs: ndarray | DataFrame | Series)[source]¶ Bootstrap using blocks of the same length with end-to-start wrap around.
- Parameters:¶
- block_size: int¶
Size of block to use. Must be an integer that is at least 1.
- *args: ndarray | DataFrame | Series¶
Positional arguments to bootstrap. Each must have at least one row.
- seed: int | Generator | RandomState | None =
None¶ Seed to use to ensure reproducible results. If an int, it must be non-negative and is passed to
np.random.default_rng. If None, a fresh Generator is constructed with system-provided entropy.- **kwargs: ndarray | DataFrame | Series¶
Keyword arguments to bootstrap. Each must have at least one row.
- data¶
Two-element tuple with the pos_data in the first position and kw_data in the second (pos_data, kw_data).
- Raises:¶
TypeError – If an input is not an ndarray, Series or DataFrame,
block_sizeis not an int, orseedis not None, a non-negative int, a Generator or a RandomState.ValueError – If there are no inputs, an input has no rows, the inputs do not have the same number of rows,
block_sizeis less than 1,seedis a negative int, or a keyword argument has the name of an attribute or method of the bootstrap.
See also
arch.bootstrap.optimal_block_lengthOptimal block length estimation.
arch.bootstrap.StationaryBootstrapPolitis and Romano’s bootstrap with exp. distributed block lengths.
Notes
Supports numpy arrays and pandas Series and DataFrames. Data returned has the same type as the input data.
The data are used as given. They are not converted to float64 and are not checked for NaN or inf, since the function that is bootstrapped decides how to treat them (for example, using
np.nanmean).Data entered using keyword arguments is directly accessible as an attribute.
To ensure a reproducible bootstrap, you must pass the
seedkeyword argument when the bootstrap is created. See the example below. Note thatseedis a reserved keyword and any variable passed using this keyword must be an integer, aGeneratoror aRandomState.Examples
Data can be accessed in a number of ways. Positional data is retained in the same order as it was entered when the bootstrap was initialized. Keyword data is available both as an attribute or using a dictionary syntax on kw_data.
>>> from arch.bootstrap import CircularBlockBootstrap >>> from numpy.random import standard_normal >>> y = standard_normal((500, 1)) >>> x = standard_normal((500, 2)) >>> z = standard_normal(500) >>> bs = CircularBlockBootstrap(17, x, y=y, z=z) >>> for data in bs.bootstrap(100): ... bs_x = data[0][0] ... bs_y = data[1]['y'] ... bs_z = bs.zSet the seed if reproducibility is required
>>> from numpy.random import default_rng >>> gen = default_rng(1234) >>> bs = CircularBlockBootstrap(17, x, y=y, z=z, seed=gen)Methods
apply(func[, reps, extra_kwargs])Apply a function to bootstrap replicated data.
bootstrap(reps)Iterate over the bootstrap replications.
clone(*args[, seed])Clone the bootstrap using different data with a fresh prng.
conf_int(func[, reps, method, size, tail, ...])Compute confidence intervals using the bootstrap.
cov(func[, reps, recenter, extra_kwargs])Compute parameter covariance using bootstrap.
reset([use_seed])Reset the bootstrap to its initial state.
Update indices for the next iteration of the bootstrap.
var(func[, reps, recenter, extra_kwargs])Compute parameter variance using bootstrap.
Properties
The block size of the bootstrap.
Set or get the instance PRNG.
The current index of the bootstrap.
Set or get the generator's state.