Learn R Programming

bayesmeta (version 3.4)

RhodesEtAlPrior: Heterogeneity priors for continuous outcomes (standardized mean differences) as proposed by Rhodes et al. (2015).

Description

Use the prior specifications proposed in the paper by Rhodes et al., based on an analysis of studies using standardized mean differences (SMD) that were published in the Cochrane Database of Systematic Reviews.

Usage

RhodesEtAlPrior(outcome=c(NA, "obstetric outcome",
  "resource use and hospital stay / process",
  "internal and external structure-related outcome",
  "general physical health and adverse event and pain and quality of life / functioning",
  paste("signs / symptoms reflecting continuation / end of condition and infection",
        "/ onset of new acute / chronic disease"),
  "mental health outcome", "biological marker", "various subjectively measured outcomes"),
  comparator1=c("pharmacological", "non-pharmacological", "placebo / control"),
  comparator2=c("pharmacological", "non-pharmacological", "placebo / control"),
  area=c("other", "respiratory", "cancer"))

Value

a list with elements

parameters

the location and scale parameters (corresponding to the logarithmic squared heterogeneity parameter \(\tau^2\) as well as \(\tau\)).

outcome.type

the corresponding type of outcome.

comparison.type

the corresponding type of comparison.

medical.area

the medical context.

dprior

a function(tau) returning the prior density of \(\tau\).

pprior

a function(tau) returning the prior cumulative distribution function (CDF) of \(\tau\).

qprior

a function(p) returning the prior quantile function (inverse CDF) of \(\tau\).

Arguments

outcome

The type of outcome investigated (see below for a list of possible values). The default (NA) is the general (marginal) setting, without considering meta-analysis characteristics as covariates.

comparator1

One comparator's type.

comparator2

The other comparator's type.

area

The medical area.

Details

Rhodes et al. conducted an analysis of studies listed in the Cochrane Database of Systematic Reviews that were investigating standardized mean differences (SMD) as endpoints. As a result, they proposed empirically motivated log-Student-\(t\) prior distributions for the (squared!) heterogeneity parameter \(\tau^2\), depending on the particular type of outcome investigated and the type of comparison in question. The underlying \(t\)-distribution's location and scale parameters here are internally stored in a 3-dimensional array (named RhodesEtAlParameters) and are most conveniently accessed using the RhodesEtAlPrior() function.

The outcome argument specifies the type of outcome investigated. It may take one of the following values (partial matching is supported):

  • NA

  • "obstetric outcomes"

  • "resource use and hospital stay / process"

  • "internal and external structure-related outcome"

  • "general physical health and adverse event and pain and quality of life / functioning"

  • "signs / symptoms reflecting continuation / end of condition and infection / onset of new acute / chronic disease"

  • "mental health outcome"

  • "biological marker"

  • "various subjectively measured outcomes".

Specifying “outcome=NA” (the default) yields the marginal setting, without considering meta-analysis characteristics as covariates.

The comparator1 and comparator2 arguments together specify the type of comparison in question. These may take one of the following values (partial matching is supported):

  • "pharmacological"

  • "non-pharmacological"

  • "placebo / control".

Any combination is allowed for the comparator1 and comparator2 arguments, as long as not both arguments are set to "placebo / control". The area argument specifies the medical context; possible values are:

  • "respiratory"

  • "cancer"

  • "other" (the default).

Note that the location and scale parameters refer to the logarithmic (squared) heterogeneity parameter \(\tau^2\), which is modelled using a Student-\(t\) distribution with 5 degrees of freedom. When you want to use the prior specifications for \(\tau\), the square root, as the parameter (as is necessary when using the bayesmeta() function), you need to correct for the square root transformation. Taking the square root is equivalent to dividing by two on the log-scale, so the square root will still be log-Student-t distributed, but with halved location and scale parameters. The relevant transformations are already taken care of when using the resulting $dprior(), $pprior() and $qprior() functions; see also the example below.

References

K.M. Rhodes, R.M. Turner, J.P.T. Higgins. Predictive distributions were developed for the extent of heterogeneity in meta-analyses of continuous outcome data. Journal of Clinical Epidemiology, 68(1):52-60, 2015. tools:::Rd_expr_doi("10.1016/j.jclinepi.2014.08.012").

C. Roever, R. Bender, S. Dias, C.H. Schmid, H. Schmidli, S. Sturtz, S. Weber, T. Friede. On weakly informative prior distributions for the heterogeneity parameter in Bayesian random-effects meta-analysis. Research Synthesis Methods, 12(4):448-474, 2021. tools:::Rd_expr_doi("10.1002/jrsm.1475").

See Also

TurnerEtAlPrior.

Examples

Run this code
# determine prior distribution for a specific setting:
RP <- RhodesEtAlPrior("obstetric", "pharma", "placebo")
print(RP$parameters)
str(RP)
# a prior 95 percent interval for tau:
RP$qprior(c(0.025,0.975))

# the general (marginal) setting:
RP <- RhodesEtAlPrior()
print(RP$parameters)
str(RP)
# a prior 95 percent interval for tau:
RP$qprior(c(0.025,0.975))

if (FALSE) {
# load "metafor" package:
require("metafor")
# load data:
data("dat.normand1999")
# compute effect sizes (standardized mean differences):
es <- escalc(measure="SMD", m1i=m1i, sd1i=sd1i, n1i=n1i,
             m2i=m2i, sd2i=sd2i, n2i=n2i,
             slab=source, data=dat.normand1999)

# derive appropriate prior:
RP <- RhodesEtAlPrior("resource use", "non-pharma", "non-pharma")
# show (central) prior 95 percent interval:
RP$qprior(c(0.025, 0.975))
# show prior 95 percent upper limit:
RP$qprior(0.95)

# perform meta analysis:
bma <- bayesmeta(es, tau.prior=RP$dprior)
# show results:
print(bma)
plot(bma, which=4, prior=TRUE)
}

Run the code above in your browser using DataLab