The aim of this vignette is to introduce the R package confintr
for calculating one- and two-sided classic and bootstrap confidence intervals.
Confidence intervals for the following parameters are available:
mean (Student, Wald, bootstrap),
proportion (Wilson, Clopper-Pearson, Agresti-Coutts, bootstrap),
median and other quantiles (distribution-free binomial and bootstrap),
variance and standard deviation (chi-squared, bootstrap),
IQR and MAD (bootstrap only),
skewness and kurtosis (bootstrap only),
R-squared and the non-centrality parameter of the F distribution (parametric),
Cramér’s V and the non-centrality parameter of the chi-squared distribution (parametric and bootstrap),
the odds ratio of a 2x2 table (exact),
Pearson-, Spearman-, Kendall correlation coefficients (normal for Pearson, bootstrap for any),
Mean, quantile and median differences of two samples (for quantile/median only bootstrap).
Many of the classic confidence intervals on this list are discussed in (Smithson 2003).
We offer different types of bootstrap intervals:
Normal (“norm”) bootstrap confidence interval: This is the Wald/Student confidence interval using as standard error the standard deviation of the bootstrap distribution. Simple, but only first-order accurate and not transformation respecting.
Percentile (“perc”) bootstrap confidence interval: Uses quantiles of the bootstrap distribution as confidence limits. Simple, but only first order accurate. Transformation respecting.
Basic (“basic”) or reverse bootstrap confidence interval: Flipped version of the percentile approach, dealing with bias but at the price of having very unnaturally tailed sampling distributions. Only first order accurate.
Bias-corrected and accelerated (“bca”) confidence interval: Refined version of the percentile bootstrap which is second order accurate and transformation respecting. Needs more replications than observations. Usually our default.
Student-t (“stud”) bootstrap confidence interval: Refined version of the normal bootstrap that replaces the Student quantile by a custom quantile obtained from bootstrapping the standard error of the bootstrapped statistic. Second order accurate but not transformation respecting. Requires a formula for the standard error, which confintr
provides for the mean, the mean difference, the variance (and standard deviation) as well as for the proportion. Used as the default for the mean and the mean difference.
For details on bootstrap confidence intervals, we refer to (Efron and Tibshirani 1993). We provide them through the widely used boot
package (Canty and Ripley 2019).
From CRAN:
install.packages("confintr")
Latest version from github:
library(devtools)
install_github("mayer79/confintr")
library(confintr)
# Mean
ci_mean(1:100)
#>
#> Two-sided 95% t confidence interval for the population mean
#>
#> Sample estimate: 50.5
#> Confidence interval:
#> 2.5% 97.5%
#> 44.74349 56.25651
ci_mean(1:100, type = "bootstrap")
#>
#> Two-sided 95% bootstrap confidence interval for the population mean
#> based on 9999 bootstrap replications and the student method
#>
#> Sample estimate: 50.5
#> Confidence interval:
#> 2.5% 97.5%
#> 44.75512 56.17061
# 95% value at risk
ci_quantile(rexp(1000), q = 0.95)
#>
#> Two-sided 95% binomial confidence interval for the population 95%
#> quantile
#>
#> Sample estimate: 3.046623
#> Confidence interval:
#> 2.5% 97.5%
#> 2.783287 3.464526
# IQR
ci_IQR(rexp(100), R = 999)
#>
#> Two-sided 95% bootstrap confidence interval for the population IQR
#> based on 999 bootstrap replications and the bca method
#>
#> Sample estimate: 0.9930657
#> Confidence interval:
#> 2.5% 97.5%
#> 0.730268 1.381263
# Correlation
ci_cor(iris[1:2], method = "spearman", type = "bootstrap", R = 999)
#>
#> Two-sided 95% bootstrap confidence interval for the true Spearman
#> correlation coefficient based on 999 bootstrap replications and the
#> bca method
#>
#> Sample estimate: -0.1667777
#> Confidence interval:
#> 2.5% 97.5%
#> -0.30731216 -0.00492064
# Proportions
ci_proportion(10, n = 100, type = "Wilson")
#>
#> Two-sided 95% Wilson confidence interval for the true proportion
#>
#> Sample estimate: 0.1
#> Confidence interval:
#> 2.5% 97.5%
#> 0.05522914 0.17436566
ci_proportion(10, n = 100, type = "Clopper-Pearson")
#>
#> Two-sided 95% Clopper-Pearson confidence interval for the true
#> proportion
#>
#> Sample estimate: 0.1
#> Confidence interval:
#> 2.5% 97.5%
#> 0.04900469 0.17622260
# R-squared
<- lm(Sepal.Length ~ ., data = iris)
fit ci_rsquared(fit, probs = c(0.05, 1))
#>
#> One-sided 95% F confidence interval for the population R-squared
#>
#> Sample estimate: 0.8673123
#> Confidence interval:
#> 5% 100%
#> 0.8312405 1.0000000
# Kurtosis
ci_kurtosis(1:100)
#>
#> Two-sided 95% bootstrap confidence interval for the population
#> kurtosis based on 9999 bootstrap replications and the bca method
#>
#> Sample estimate: 1.79976
#> Confidence interval:
#> 2.5% 97.5%
#> 1.582276 2.044628
# Mean difference
ci_mean_diff(10:30, 1:15)
#>
#> Two-sided 95% t confidence interval for the population value of
#> mean(x)-mean(y)
#>
#> Sample estimate: 12
#> Confidence interval:
#> 2.5% 97.5%
#> 8.383547 15.616453
ci_mean_diff(10:30, 1:15, type = "bootstrap", R = 999)
#>
#> Two-sided 95% bootstrap confidence interval for the population value
#> of mean(x)-mean(y) based on 999 bootstrap replications and the student
#> method
#>
#> Sample estimate: 12
#> Confidence interval:
#> 2.5% 97.5%
#> 8.492384 15.414480
# Median difference
ci_median_diff(10:30, 1:15, R = 999)
#>
#> Two-sided 95% bootstrap confidence interval for the population value
#> of median(x)-median(y) based on 999 bootstrap replications and the bca
#> method
#>
#> Sample estimate: 12
#> Confidence interval:
#> 2.5% 97.5%
#> 5 17