| flexMeboot {meboot} | R Documentation |
Flexible Extension of the Maximum Entropy Bootstrap Procedure
Description
This function extends the maximum entropy bootstrap procedure
implemented in meboot
to allow for for a flexible trend up, flat or down.
Usage
flexMeboot (x, reps = 9, segment = 5, forc = FALSE, myseq = seq(-1, 1, by = 1))
Arguments
x |
vector of data, |
reps |
number of replicates to generate. |
segment |
block size. |
forc |
logical. If TRUE the ensemble is forced to satisfy the central limit theorem.
See |
myseq |
directions for trend within a block of data is chosen randomly with the user's choice
limited by the range of values given by myseq. For example, |
Details
flexMeboot uses non-overlapping blocks having only m observations.
A trend a + bt is replaced by a + Bt,
where B = sample(myseq) * b.
Its steps are as follows:
Choose block size
segmentdenoted here asm(default equal tom=5) and divide the original time seriesxof lengthTintok = floor(T/m)blocks or subsets. Note that whenT/mis not an integer thek-th block will have a few more thanmitems. Hence let us denote the number of observations in each block asmwhich equalsmfor most blocks, except thek-th.Regress each block having m observations as subsets of
xon the set\tau = 1, 2,..., m, and store the interceptb0, the slopeb1of\tauand the residualsr.Note that the positive (negative) sign of the slope
b1in this regression determines the up (down) direction of the time series in that block. Hence the next step of the algorithm replacesb1byB1 = b1 * w, defined by a randomly chosen weightw in (-1, 0, 1). For example, when the random choice yieldsw = -1, the sign ofb1is reversed. Our weighting independently injects some limited flexibility to the directions of values block segments of the original time series.Reconstruct all time series blocks as:
b0 + b1 * w * \tau + r, by adding back the residualrof the regression on\tau.The next step applies the function
mebootto each block of time serie-now having a modified trend-and create a large number,J, of resampled time series for each of thekblocks.Sequentially join the
Jreplicates of allkblocks or subsets together.
Value
A matrix containing by columns
the bootstrapped replicated of the original data x.
References
Vinod, H.D. (2012), Constructing Scenarios of Time Heterogeneous Series for Stress Testing, Available at SSRN: https://www.ssrn.com/abstract=1987879.
See Also
Examples
set.seed(235)
myseq <- seq(-1, 1, by = 0.5)
xx <- flexMeboot(x = AirPassengers, myseq = myseq, reps = 3)
matplot(cbind(AirPassengers, xx), type = "l")