arch.bootstrap.MovingBlockBootstrap¶
-
class arch.bootstrap.MovingBlockBootstrap(block_size: int, *args: ndarray | DataFrame | Series, seed: None | int | RandomState | Generator =
None
, **kwargs: ndarray | DataFrame | Series)[source]¶ Bootstrap using blocks of the same length without wrap around
- Parameters:¶
- block_size: int¶
Size of block to use
- *args: ndarray | DataFrame | Series¶
Positional arguments to bootstrap
- seed: None | int | RandomState | Generator =
None
¶ Seed to use to ensure reproducable results. If an int, passes the value to value to
np.random.default_rng
. If None, a fresh Generator is constructed with system-provided entropy.- **kwargs: ndarray | DataFrame | Series¶
Keyword arguments to bootstrap
- data¶
Two-element tuple with the pos_data in the first position and kw_data in the second (pos_data, kw_data)
Notes
Supports numpy arrays and pandas Series and DataFrames. Data returned has the same type as the input date.
Data entered using keyword arguments is directly accessibly as an attribute.
To ensure a reproducible bootstrap, you must set the
seed
attribute after the bootstrap has been created. See the example below. Note thatseed
is a reserved keyword and any variable passed using this keyword must be an integer, aGenerator
or aRandomState
.See also
arch.bootstrap.optimal_block_length
Optimal block length estimation
arch.bootstrap.StationaryBootstrap
Politis and Romano’s bootstrap with exp. distributed block lengths
arch.bootstrap.CircularBlockBootstrap
Circular (wrap-around) bootstrap
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 MovingBlockBootstrap >>> from numpy.random import standard_normal >>> y = standard_normal((500, 1)) >>> x = standard_normal((500,2)) >>> z = standard_normal(500) >>> bs = MovingBlockBootstrap(7, x, y=y, z=z) >>> for data in bs.bootstrap(100): ... bs_x = data[0][0] ... bs_y = data[1]['y'] ... bs_z = bs.z
Set the seed if reproducibility is required
>>> from numpy.random import default_rng >>> gen = default_rng(1234) >>> bs = MovingBlockBootstrap(7, x, y=y, z=z, seed = gen)
Methods
apply
(func[, reps, extra_kwargs])Applies a function to bootstrap replicated data
bootstrap
(reps)Iterator for use when bootstrapping
clone
(*args[, seed])Clones the bootstrap using different data with a fresh prng.
conf_int
(func[, reps, method, size, tail, ...])cov
(func[, reps, recenter, extra_kwargs])Compute parameter covariance using bootstrap
reset
([use_seed])Resets the bootstrap to either its initial state or the last seed.
Update indices for the next iteration of the bootstrap.
var
(func[, reps, recenter, extra_kwargs])Compute parameter variance using bootstrap
Properties
Set or get the instance PRNG
The current index of the bootstrap
Set or get the generator's state