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 (2025). The episensr package: Basic sensitivity analysis of
#>   epidemiological results. R package version 2.1.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 = {2025},
#>     note = {R package version 2.1.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)

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

831

Version

2.1.0

License

GPL-2

Maintainer

Denis Haine

Last Published

November 4th, 2025

Functions in episensr (2.1.0)

plot.episensr_probsens

Plot(s) of probabilistic bias analyses
probsens_irr_conf

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

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

Legacy version of probsens.irr().
rename

Functions renamed in episensr 2.1.0
selection

Selection bias.
probsens_legacy

Legacy version of probsens().
confounders_ext

Sensitivity analysis for unmeasured confounders based on external adjustment
boot_bias

Bootstrap resampling for selection and misclassification bias models.
misclass

Misclassification of exposure or outcome
misclass_cov

Covariate misclassification
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_evalue

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

Sensitivity analysis to correct for selection bias caused by M bias.
confounders_limit

Bounding the bias limits of unmeasured confounding.
confounders

Uncontrolled confounding
multidimBias

Multidimensional sensitivity analysis for different sources of bias
plot.episensr_booted

Plot of bootstrap simulation output for selection and misclassification bias
plot.mbias

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

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

Print associations for episensr class
probsens.irr.conf_legacy

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

Print bootstrapped confidence intervals
print.mbias

Print association corrected for M bias
%>%

Pipe bias functions