fit_models_RA {ra4bayesmeta}R Documentation

Model fitting for reference analysis using 2 benchmarks: Posterior inference for benchmark and actual heterogeneity priors

Description

Computes the posterior distribution of the parameters in a random-effects meta-analysis (expressed as a normal-normal hierarchical model) for two benchmark heterogeneity priors and the actual heterogeneity prior(s) specified. Applies the function bayesmeta from the package bayesmeta.

Usage

fit_models_RA(df, tau.prior = list(), scale.hn0 = 1/500,
              mu.mean = 0, mu.sd = 4, interval.type = "central")

Arguments

df

data frame with one column "y" containing the (transformed) effect estimates for the individual studies and one column "sigma" containing the standard errors of these estimates.

tau.prior

list of prior specifications, which are either functions returning the probability densities of the actual priors of interest for the heterogeneity parameter tau or character strings specifying priors implemented in the bayesmeta function. See the documentation of the argument tau.prior of the bayesmeta function for details.

scale.hn0

scale parameter of the half-normal benchmark prior (usually small, so that the benchmark is anti-conservative).

mu.mean

mean of the normal prior for the effect mu.

mu.sd

standard deviation of the normal prior for the effect mu.

interval.type

the type of (credible, prediction, shrinkage) interval to be returned by default. Either "central" for equal-tailed intervals or "shortest" for shortest intervals. Defaults to "central". See also the corresponding argument in the bayesmeta function.

Details

The two heterogeneity benchmark priors used are introduced in Ott et al. (2021, Section 3.4), where they are denoted by HN0 and J. Note that "J" refers to Jeffreys reference prior, which is improper, but leads to a proper posterior if there are at least two studies in the meta-analysis data set. HN0 is a half-normal prior with scale parameter scale.hn0.

Decreasing the scale parameter scale.hn0 of the half-normal benchmarks leads to a more anti-conservative (i.e. its mass is more concentrated near 0) HN0 benchmark prior. However, scale.hn0 cannot be chosen arbitrarily small since too small values lead to numerical problems in the bayesmeta function used to fit the models. To verify how anti-conservative the HN0 benchmark is, one can compare the marginal posterior for the overall mean parameter mu with the corresponding posterior for the fixed effects model, e.g. by using the function plot_RA. The better the match between these two marginal posteriors, the more anti-conservative the HN0 benchmark is.

The default values for mu.mean and mu.sd are suitable for effects mu on the log odds (ratio) scale.

Value

A list containing the model fits, namely a list of lists of class bayesmeta. This list has length 2 + length(tau.prior) and contains one element for each heterogeneity prior considered (2 benchmark priors and the actual priors specified), in the following order:

fit.hn0

for the half-normal HN0 benchmark prior with scale parameter scale.hn0

fit.j

for Jeffreys (improper) reference prior

fit.actual_1

for the first prior in the list tau.prior (if specified)

fit.actual_2

for the second prior in the list tau.prior (if specified)

...

...

fit.actual_n

for the nth prior in the list tau.prior (if specified)

See bayesmeta in the package bayesmeta for information on the structure of the lists of class bayesmeta.

Warning

If fit_models_RA ends with an error or warning, we recommend to increase the value of the parameter scale.hn0 for the anti-conservative benchmark prior.

References

Ott, M., Plummer, M., Roos, M. (2021). How vague is vague? How informative is informative? Reference analysis for Bayesian meta-analysis. Statistics in Medicine 40, 4505–4521. doi:10.1002/sim.9076

See Also

bayesmeta in the package bayesmeta, plot_RA, fit_models_RA_5bm

Examples

# for aurigular acupuncture (AA) data set
data(aa)  
# one actual half-normal and the "DuMouchel" heterogeneity prior
# it takes a few seconds to run this function
fit_models_RA(df=aa, tau.prior=list(function(t)dhalfnormal(t, scale=0.5),
                                    "DuMouchel"))
                                    

[Package ra4bayesmeta version 1.0-8 Index]