Using confintr

Michael Mayer

2022-01-28

Introduction

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:

Many of the classic confidence intervals on this list are discussed in (Smithson 2003).

We offer different types of bootstrap intervals:

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

  2. Percentile (“perc”) bootstrap confidence interval: Uses quantiles of the bootstrap distribution as confidence limits. Simple, but only first order accurate. Transformation respecting.

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

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

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

Installation

From CRAN:

install.packages("confintr")

Latest version from github:

library(devtools)
install_github("mayer79/confintr")

Examples

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
fit <- lm(Sepal.Length ~ ., data = iris)
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

References

Canty, Angelo, and Brian D. Ripley. 2019. Boot: Bootstrap r (s-Plus) Functions.
Efron, Bradley, and Robert J. Tibshirani. 1993. An Introduction to the Bootstrap. Monographs on Statistics and Applied Probability 57. Boca Raton, Florida, USA: Chapman & Hall/CRC.
Smithson, Michael. 2003. Confidence Intervals. Quantitative Applications in the Social Sciences. SAGE Publications, New York.