estimate.tau {moonboot} | R Documentation |
Estimating the convergence rate
Description
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.
Usage
estimate.tau(
data,
statistic,
R = 1000,
replace = FALSE,
min.m = 3,
beta = seq(0.2, 0.7, length.out = 5),
method = "variance",
...
)
Arguments
data |
The data to be bootstrapped. |
statistic |
The estimator of the parameter. |
R |
Amount of bootstrap replicates used to estimate tau. |
replace |
If sampling should be done with replacement. |
min.m |
Minimal subsampling size used to estimate tau. Should be set to the minimum size for which the statistic makes sense. |
beta |
The tested subsample sizes m are |
method |
Method to estimate tau, can be one of |
... |
Additional parameters to be passed to the |
Details
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).
Value
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
.
References
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
See Also
mboot.ci
Examples
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)