Learn R Programming

episensr

The R package episensr allows to do basic sensitivity analysis of epidemiological results as described in Applying Quantitative Bias Analysis to Epidemiological Data, 2nd ed. by Matthew P. Fox, Richard F. MacLehose, and Timothy L. Lash (ISBN: 978-3-030-82672-7, bias.analysis).

License

This package is free and open source software, licensed under GPL2.

Citation

To cite episensr, please use:

citation("episensr")
#> To cite package 'episensr' in publications use:
#> 
#>   Haine, Denis (2026). The episensr package: Basic sensitivity analysis
#>   of epidemiological results. R package version 2.2.0.
#>   https://dhaine.codeberg.page/episensr/. doi:
#>   10.32614/CRAN.package.episensr.
#> 
#> A BibTeX entry for LaTeX users is
#> 
#>   @Misc{,
#>     title = {The episensr package: basic sensitivity analysis of epidemiological results},
#>     author = {Denis Haine},
#>     year = {2026},
#>     note = {R package version 2.2.0},
#>     doi = {10.32614/CRAN.package.episensr},
#>     url = {https://dhaine.codeberg.page/episensr/},
#>   }

Example

We will use a case-control study by Stang et al. on the relation between mobile phone use and uveal melanoma. The observed odds ratio for the association between regular mobile phone use vs. no mobile phone use with uveal melanoma incidence is 0.71 [95% CI 0.51-0.97]. But there was a substantial difference in participation rates between cases and controls (94% vs 55%, respectively) and so selection bias could have an impact on the association estimate. The 2X2 table for this study is the following:

regular useno use
cases136107
controls297165

We use the function selection as shown below.

library(episensr)
#> Loading required package: ggplot2
#> Thank you for using episensr!
#> This is version 2.2.0 of episensr
#> Type 'citation("episensr")' for citing this R package in publications.

selection(matrix(c(136, 107, 297, 165),
                 dimnames = list(c("UM+", "UM-"), c("Mobile+", "Mobile-")),
                 nrow = 2, byrow = TRUE),
          bias_parms = c(.94, .85, .64, .25))
#> 
#> ── Observed data ───────────────────────────────────────────────────────────────
#> • Outcome: UM+
#> • Comparing: Mobile+ vs. Mobile-
#> 
#>     Mobile+ Mobile-
#> UM+     136     107
#> UM-     297     165
#>                                        2.5%     97.5%
#> Observed Relative Risk: 0.7984287 0.6518303 0.9779975
#>    Observed Odds Ratio: 0.7061267 0.5143958 0.9693215
#> ── Bias-adjusted measures ──
#>                                                 
#> Selection Bias Corrected Relative Risk: 1.483780
#>    Selection Bias Corrected Odds Ratio: 1.634608

The 2X2 table is provided as a matrix and selection probabilities given with the argument bias_parms, a vector with the 4 probabilities (guided by the participation rates in cases and controls) in the following order: among cases exposed, among cases unexposed, among noncases exposed, and among noncases unexposed. The output shows the observed 2X2 table, the observed odds ratio (and relative risk) followed by the corrected ones.

Installation

You can get the latest release from CRAN:

install.packages('episensr')

Or install the development version from Codeberg with remotes package:

#install.packages("remotes")
remotes::install_git("https://codeberg.org/dhaine/episensr", ref = "develop")

Copy Link

Version

Install

install.packages('episensr')

Monthly Downloads

425

Version

2.2.0

License

GPL-2

Maintainer

Denis Haine

Last Published

August 28th, 2026

Functions in episensr (2.2.0)

print.mbias

Print association corrected for M bias
plot.episensr_probsens

Plot(s) of probabilistic bias analyses
plot.episensr_booted

Plot of bootstrap simulation output for selection and misclassification bias
print.episensr

Print associations for episensr class
%>%

Pipe operator
multidimBias

Multidimensional sensitivity analysis for different sources of bias
probsens.conf_legacy

Legacy version of probsens.conf().
print.episensr_booted

Print bootstrapped confidence intervals
probsens.irr.conf_legacy

Legacy version of probsens.irr.conf().
plot.mbias

Plot DAGs before and after conditioning on collider (M bias)
probsens.irr_legacy

Legacy version of probsens.irr().
probsens_legacy

Legacy version of probsens().
probsens_irr

Probabilistic sensitivity analysis for exposure misclassification of person-time data and random error.
probsens_irr_conf

Probabilistic sensitivity analysis for unmeasured confounding of person-time data and random error.
selection

Selection bias.
misclass_cov

Covariate misclassification
misclass

Misclassification of exposure or outcome
confounders_evalue

Compute E-value to assess bias due to unmeasured confounder.
mbias

Sensitivity analysis to correct for selection bias caused by M bias.
episensr-package

episensr: Basic Sensitivity Analysis for Epidemiological Results
confounders_array

Sensitivity analysis for unmeasured confounders based on confounding imbalance among exposed and unexposed
confounders_ext

Sensitivity analysis for unmeasured confounders based on external adjustment
confounders_limit

Bounding the bias limits of unmeasured confounding.
boot_bias

Bootstrap resampling for selection and misclassification bias models.
confounders

Uncontrolled confounding