quantile.CI.via.bootstrap <- function(x, p, alpha = 0.1) { ## Purpose: ## Calculate a two-sided confidence interval with confidence level of (1 - alpha) for ## a quantile, based on the (computing intensive) bootstrap resampling method. ## ## Arguments: ## - x: a vector of values, representing a data sample. ## - p: probability cutpoint for the quantile (between 0 and 1). ## - alpha: type I error level (default to 0.1 so a 90% CI is calculated) ## ## Return: ## - CI: the lower and upper limits of the two-sided CI. q <- quantile(x, probs = p) message("Quantile Point Estimate = ", q, " (Probability Cutpoint = ", p, ")\n") ## Bootstrap resampling with 2000 replications library(boot) set.seed(1) b <- boot(x, function(x, i) quantile(x[i], probs = p), R = 2000) boot.ci(b, conf = 1 - alpha, type = c("norm", "basic", "perc", "bca")) } if (F) { # Unit Test x <- 1:100 p <- 0.9 alpha <- 0.05 quantile.CI.via.bootstrap(x, p, alpha) ## Intervals : ## Level Normal Basic ## 95% (84.50, 96.34 ) (85.10, 97.10 ) ## Level Percentile BCa ## 95% (83.1, 95.1 ) (83.3, 95.1 ) }
Thursday, June 30, 2022
Bootstrap Confidence Interval for a Quantile
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment