bcmixmeta {jarbes}R Documentation

Bias Corrected Meta-Analysis with Dirichlet Mixture Process Priors for the biased component

Description

This function performers a Bayesian meta-analysis with DPM as random effects

Usage

bcmixmeta(
  data,
  mean.mu.0 = 0,
  sd.mu.0 = 10,
  scale.sigma.between = 0.5,
  df.scale.between = 1,
  scale.sigma.beta = 0.5,
  df.scale.beta = 1,
  B.lower = -15,
  B.upper = 15,
  a.0 = 0.5,
  a.1 = 1,
  alpha.0 = 0.03,
  alpha.1 = 2,
  K = 10,
  sort.priors = FALSE,
  nr.chains = 2,
  nr.iterations = 10000,
  nr.adapt = 1000,
  nr.burnin = 1000,
  nr.thin = 1,
  be.quiet = FALSE
)

Arguments

data

A data frame with at least two columns with the following names: 1) TE = treatment effect, 2) seTE = the standard error of the treatment effect.

mean.mu.0

Prior mean of the mean of the base distribution default value is mean.mu.0 = 0.

sd.mu.0

Prior standard deviation of the base distribution, the default value is 10^-6.

scale.sigma.between

Prior scale parameter for scale gamma distribution for the precision between studies. The default value is 0.5.

df.scale.between

Degrees of freedom of the scale gamma distribution for the precision between studies. The default value is 1, which results in a Half Cauchy distribution for the standard deviation between studies. Larger values e.g. 30 corresponds to a Half Normal distribution.

scale.sigma.beta

Prior scale parameter for the scale.gamma distribution for the precision between study biases.

df.scale.beta

Degrees of freedom of the scale gamma distribution for the precision between study biases. The default value is 1, which results in a Half Cauchy distribution for the standard deviation between biases.

B.lower

Lower bound of the bias parameter B, the default value is -15.

B.upper

Upper bound of the bias parameter B, the default value is 15.

a.0

Parameter for the prior Beta distribution for the probability of bias. Default value is a0 = 0.5.

a.1

Parameter for the prior Beta distribution for the probability of bias. Default value is a1 = 1.

alpha.0

Lower bound of the uniform prior for the concentration parameter for the DP, the default value is 0.5.

alpha.1

Upper bound of the uniform prior for the concentration parameter for the DP, the default value depends on the sample size, see the example below. We give as working value alpha.1 = 2

K

Maximum number of clusters in the DP, the default value depends on alpha.1, see the example below. We give as working vaule K = 10.

sort.priors

Experimental option, indicates if a weak information regarding the means and the variances are used. If sort.priors == TRUE then the Delta parameter is not used and only the order of the means and variances are restricted.

nr.chains

Number of chains for the MCMC computations, default 2.

nr.iterations

Number of iterations after adapting the MCMC, default is 10000. Some models may need more iterations.

nr.adapt

Number of iterations in the adaptation process, default is 1000. Some models may need more iterations during adptation.

nr.burnin

Number of iteration discard for burn-in period, default is 1000. Some models may need a longer burnin period.

nr.thin

Thinning rate, it must be a positive integer, the default value 1.

be.quiet

Do not print warning message if the model does not adapt. The default value is FALSE. If you are not sure about the adaptation period choose be.quiet=TRUE.

Details

The results of the object of the class bcmixmeta can be extracted with R2jags or with rjags. In addition a summary, a print and a plot functions are implemented for this type of object.

Value

This function returns an object of the class "bcmixmeta". This object contains the MCMC output of each parameter and hyper-parameter in the model and the data frame used for fitting the model.

References

Verde, P.E. and Rosner, G. L. (2024) A Bias-Corrected Bayesian Nonparamteric Model for Combining Studies with Varying Quality in Meta-Analysis. Biometrical Journal; (under revision).

Examples

## Not run: 
library(jarbes)


# Example: Stemcells

data("stemcells")
stemcells$TE = stemcells$effect.size
stemcells$seTE = stemcells$se.effect

# Beta(0.5, 1)
a.0 = 0.5
a.1 = 1

# alpha.max
 N = dim(stemcells)[1]
 alpha.max = 1/5 *((N-1)*a.0 - a.1)/(a.0 + a.1)

alpha.max

# K.max
K.max = 1 + 5*alpha.max
K.max = round(K.max)

K.max

set.seed(20233)

bcmix.2.stemcell = bcmixmeta(stemcells,
                            mean.mu.0=0, sd.mu.0=100,
                            B.lower = -15,
                            B.upper = 15,
                            alpha.0 = 0.5,
                            alpha.1 = alpha.max,
                            a.0 = a.0,
                            a.1 = a.1,
                            K = K.max,
                            sort.priors = FALSE,
                            df.scale.between = 1,
                            scale.sigma.between = 0.5,
                            nr.chains = 4,
                            nr.iterations = 50000,
                            nr.adapt = 1000,
                            nr.burnin = 10000,
                            nr.thin = 4)


 diagnostic(bcmix.2.stemcell, y.lim = c(-1, 15), title.plot = "Default priors")


 bcmix.2.stemcell.mcmc <- as.mcmc(bcmix.1.stemcell$BUGSoutput$sims.matrix)


theta.names <- paste(paste("theta[",1:31, sep=""),"]", sep="")
theta.b.names <- paste(paste("theta.bias[",1:31, sep=""),"]", sep="")

theta.b.greek.names <- paste(paste("theta[",1:31, sep=""),"]^B", sep="")
theta.greek.names <- paste(paste("theta[",1:31, sep=""),"]", sep="")


caterplot(bcmix.2.stemcell.mcmc,
         parms = theta.names,               # theta
         labels = theta.greek.names,
         greek = T,
         labels.loc="axis", cex =0.7,
         col = "black",
         style = "plain",
         reorder = F,
         val.lim =c(-6, 16),
         quantiles = list(outer=c(0.05,0.95),inner=c(0.16,0.84)),
         x.lab = "Effect: mean difference"
)
title( "95% posterior intervals of studies' effects")
caterplot(bcmix.2.stemcell.mcmc,
         parms = theta.b.names,             # theta.bias
         labels = theta.greek.names,
         greek = T,
         labels.loc="no",
         cex = 0.7,
         col = "grey",
         style = "plain", reorder = F,
         val.lim =c(-6, 16),
         quantiles = list(outer=c(0.025,0.975),inner=c(0.16,0.84)),
         add = TRUE,
         collapse=TRUE, cat.shift= -0.5,
)

attach.jags(bcmix.2.stemcell, overwrite = TRUE)
abline(v=mean(mu.0), lwd =2, lty =2)

legend(9, 20, legend = c("bias corrected", "biased"),
     lty = c(1,1), lwd = c(2,2), col = c("black", "grey"))



## End(Not run)


[Package jarbes version 2.2.1 Index]