Learn R Programming

⚠️There's a newer version (2.1.0) of this package.Take me there.

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.0.0.
#>   https://dhaine.codeberg.page/episensr/. doi: 10.5281/zenodo.4554553.
#> 
#> 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.0.0},
#>     doi = {10.5281/zenodo.4554553},
#>     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.0.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

831

Version

2.0.0

License

GPL-2

Maintainer

Denis Haine

Last Published

May 15th, 2025

Functions in episensr (2.0.0)

probsens.irr

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

Multidimensional sensitivity analysis for different sources of bias
plot.mbias

Plot DAGs before and after conditioning on collider (M bias)
print.episensr.booted

Print bootstrapped confidence intervals
%>%

Pipe bias functions
probsens.conf_legacy

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

Print association corrected for M bias
print.episensr

Print associations for episensr class
plot.episensr.booted

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

Plot(s) of probabilistic bias analyses
selection

Selection bias.
probsens.irr.conf

Probabilistic sensitivity analysis for unmeasured confounding of person-time data and random error.
probsens.irr.conf_legacy

Legacy version of probsens.irr.conf().
probsens.irr_legacy

Legacy version of probsens.irr().
probsens_legacy

Legacy version of probsens().
misclass

Misclassification of exposure or outcome
misclass_cov

Covariate misclassification
confounders

Uncontrolled confounding
boot.bias

Bootstrap resampling for selection and misclassification bias models.
confounders.array

Sensitivity analysis for unmeasured confounders based on confounding imbalance among exposed and unexposed
episensr-package

episensr: Basic Sensitivity Analysis for Epidemiological Results
confounders.ext

Sensitivity analysis for unmeasured confounders based on external adjustment
mbias

Sensitivity analysis to correct for selection bias caused by M bias.
confounders.limit

Bounding the bias limits of unmeasured confounding.
confounders.evalue

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