#' compute confidence intervals for a quantile (e.g. median)
#' See also https://stats.stackexchange.com/questions/122001/confidence-intervals-for-median
#' @export
quantile_cl <- function(y, q=0.5, conf.level = 0.95, na.rm=TRUE) {
alpha <- 1 - conf.level
if (na.rm) y <- y[!is.na(y)]
n <- length(y)
l <- qbinom(alpha/2, size=n, prob = q)
u <- 1 + n - l
ys <- sort.int(c(-Inf, y, Inf), partial = c(1 + l, 1 + u))
data.frame(
y = quantile(y, probs = q, na.rm=na.rm, type = 8),
ymin = ys[1 + l],
ymax = ys[1 + u]
)
}
#' @export
median_cl <- function(y, conf.level=0.95, na.rm=TRUE) quantile_cl(y, q=0.5, conf.level=conf.level, na.rm=na.rm)
#' @export
quantile_ci <- function(y, q=0.5, alpha=0.95, na.rm=FALSE) {
lifecycle::deprecate_soft(when = "0.0.0.9006", what = "quantile_ci()", with = "quantile_cl()")
quantile_cl(y = y, q = q, conf.level = alpha, na.rm = na.rm)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.