Bayesian Meta-Analysis with Publications Bias and P-Hacking

Tools for Bayesian estimation of meta-analysis models that account for publications bias or p-hacking. For publication bias, this package implements a variant of the p-value based selection model of Hedges (1992) with discrete selection probabilities. It also implements the mixture of truncated normals model for p-hacking described in Moss and De Bin (2019) .


publipha

CRAN_Status_Badge R-CMD-check

An R package for Bayesian meta-analysis that accounts for publication bias or p-hacking.

Overview

publipha is an package for doing Bayesian meta-analysis that accounts for publication bias or p-hacking. Its main functions are:

  • psma does random effects meta-analysis under publication bias with a one-sided p-value based selection probability. The model is roughly the same as that of (Hedges, 1992)
  • phma does random effects meta-analysis under a certain model of p-hacking with a one-sided p-value based propensity to p-hack. This is based on the forthcoming paper of by Moss and De Bin (2019).
  • cma does classical random effects meta-analysis with the same priors as psma and cma.

Installation

Use the following command from inside R:

# install.packages("devtools")
devtools::install_github("JonasMoss/publipha")

Usage

Call the library function and use it like a barebones metafor::rma. The alpha tells psma or phma where they should place the cutoffs for significance.

library("publipha")
# Publication bias model
set.seed(313) # For reproducibility
model_psma = publipha::psma(yi = yi,
                            vi = vi,
                            alpha = c(0, 0.025, 0.05, 1),
                            data = metadat::dat.bangertdrowns2004)

# p-hacking model
set.seed(313)
model_phma = publipha::phma(yi = yi,
                          vi = vi,
                          alpha = c(0, 0.025, 0.05, 1),
                          data = metadat::dat.bangertdrowns2004)

# Classical model
set.seed(313)
model_cma = publipha::cma(yi = yi,
                          vi = vi,
                          alpha = c(0, 0.025, 0.05, 1),
                          data = metadat::dat.bangertdrowns2004)

You can calculate the posterior means of the meta-analytic mean with extract_theta0:

extract_theta0(model_psma)
#> [1] 0.1277197
extract_theta0(model_cma)
#> [1] 0.2212093

If you wish to plot a histogram of the posterior distribution of tau, the standard deviation of the effect size distribution, you can do it like this:

extract_tau(model_psma, hist)

References

How to Contribute or Get Help

If you encounter a bug, have a feature request or need some help, open a Github issue. Create a pull requests to contribute.

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.

install.packages("publipha")

0.1.2 by Jonas Moss, 4 years ago


Browse source code at https://github.com/cran/publipha


Authors: Jonas Moss [aut, cre] , Trustees of Columbia University [cph]


Documentation:   PDF Manual  


GPL-3 license


Imports rstan, rstantools, loo, truncnorm

Depends on methods, Rcpp

Suggests testthat, covr, knitr, rmarkdown, metafor, spelling, metadat

Linking to BH, Rcpp, RcppEigen, rstan, StanHeaders, RcppParallel

System requirements: GNU make


Imported by PublicationBiasBenchmark.


See at CRAN