Learn R Programming

moonboot (version 0.9.1)

estimate.tau: 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",
  ...
)

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.

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 n^beta.

method

Method to estimate tau, can be one of c("variance", "quantile").

...

Additional parameters to be passed to the mboot function.

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).

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

Run this code
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