This function estimates the convergence rate of the bootstrap estimator
and returns it as a function of the form tau_n = n^a
, where n
is the input parameter.
estimate.tau(
data,
statistic,
R = 1000,
replace = FALSE,
min.m = 3,
beta = seq(0.2, 0.7, length.out = 5),
method = "variance",
...
)
A function for the square root of the convergence rate of the variance, i.e., f(n) = tau_n
. This function can directly be passed to mboot.ci
.
The data to be bootstrapped.
The estimator of the parameter.
Amount of bootstrap replicates used to estimate tau.
If sampling should be done with replacement.
Minimal subsampling size used to estimate tau. Should be set to the minimum size for which the statistic makes sense.
The tested subsample sizes m are n^beta
.
Method to estimate tau, can be one of c("variance", "quantile")
.
Additional parameters to be passed to the mboot
function.
There are two methods to choose from, variance
and quantile
.
The provided beta
values are used to select subsample sizes m
by using ms = n^beta
.
Note that the choice of the beta
values can impact the accuracy of the estimated tau
(Dalitz & Lögler, 2024).
For each selected subsample size m
a bootstrap with R
replications is performed.
The method 'variance' then fits a linear function to log(variance) of the bootstrap statistics as function of log(m).
The method 'quantile' averages over multiple quantile ranges Q and fits a linear function to log(Q) as a function of log(m).
Bertail P. et al. (1999) On subsampling estimators with unknown rate of convergence. Journal of the American Statistical Association, 94(446):568-579.
Politis D.N. et al. (1999) Subsampling, Springer, New York.
Dalitz, C, and Lögler, F. (2024) moonboot: An R Package Implementing m-out-of-n Bootstrap Methods, doi:10.48550/arXiv.2412.05032
mboot.ci
data <- runif(1000)
estimate.max <- function(data, indices) {return(max(data[indices]))}
estimated.tau <- estimate.tau(data, estimate.max)
boot.out <- mboot(data, estimate.max, R = 1000, m = 2*sqrt(NROW(data)), replace = FALSE)
cis <- mboot.ci(boot.out, 0.95, estimated.tau, c("all"))
ci.basic <- cis$basic
print(ci.basic)
Run the code above in your browser using DataLab