Learn R Programming

pcnetmeta (version 2.3)

nma.ab.py: Arm-Based Network Meta-Analysis for Count Datasets with Exposure Time in Person-Years Reported

Description

nma.ab.py performs arm-based network meta-analysis for count datasets with exposure time in person-years reported. It estimates treatment-specific rate, rate ratio between treatments, and their logarithms.

Usage

nma.ab.py(s.id, t.id, event.n, py, data, trtname,
          param = c("lograte", "logratio", "rank.prob"), model = "het_cor",
          prior.type, a = 0.001, b = 0.001, c = 10, higher.better = FALSE,
          digits = 4, n.adapt = 5000, n.iter = 100000,
          n.burnin = floor(n.iter/2), n.chains = 3,
          n.thin = max(1, floor((n.iter - n.burnin)/100000)),
          conv.diag = FALSE, trace = NULL, dic = FALSE, postdens = FALSE,
          mcmc.samples = FALSE)

Arguments

s.id
a numeric or character vector indicating study ID, or the corresponding column name in the argument data.
t.id
a numeric or character vector indicating treatment ID, or the corresponding column name in the argument data.
event.n
a numeric vector of non-negative integers, indicating number of events in each study's treatment group, or the corresponding column name in the argument data.
py
a numeric vector of non-negative numbers, indicating exposure time in person-years in each study's treatment group, or the corresponding column name in the argument data.
data
an optional data frame containing the dataset for network meta-analysis. If data is specified, the previous arguments, s.id, t.id, event.n, and py, should be specified as the corresponding c
trtname
a vector of character strings indicating the treatment names for the corresponding treatment IDs according their order in t.id. If not specified, t.id is used as treatment names.
param
a vector of character strings indicating the effect sizes to be estimated. The default includes log treatment-specific rate ("lograte"), log rate ratio ("logratio"), and treatment rank probability ("rank.prob").
model
a character string indicating which Bayesian hierarchical model to be applied in the arm-based network meta-analysis. This argument can be set as "hom_eqcor", "het_eqcor", or "het_cor" (default). See "Details" for th
prior.type
prior distribution of variances/covariances of random effects. If model is "hom_eqcor" or "het_eqcor", it can be set as "unif" (uniform prior for standard deviation, the default) or "invgamma"
a, b
positive numbers, specifying the shape and scale parameters of inverse gamma priors for variance(s) of random effects if using prior.type as "invgamma" for model "hom_eqcor" or "het_eqcor". The defaults
c
positive number, specifying the upper bound of uniform prior for standard deviations of random effects if using prior.type as "unif" for model "hom_eqcor" or "het_eqcor". The default is 10.
higher.better
an optional logical value which needs to be specified when estimating the treatment rank probabilities (i.e., "rank.prob" is included in argument param). TRUE indicates higher treatment-specific rate implying better treatment, an
digits
a positive integer specifying the digits after the decimal point of the effect sizes estimates. The default is 4.
n.adapt
the number of iterations for adaptation in Markov chain Monte Carlo (MCMC) algorithm. The default is 5,000. If a warning "adaptation incomplete" appears, users may increase n.adapt. This argument and the following n.iter, n
n.iter
the total number of iterations in each MCMC chain. The default is 100,000.
n.burnin
the number of iterations for burn-in period. The default is n.iter/2.
n.chains
the number of MCMC chains. The default is 3.
n.thin
a positive integer indicating thinning rate. The default is the thinning rate which yields no more than 100,000 iterations remaining in each chain.
conv.diag
a logical value indicating whether to perform MCMC convergence diagnostic. The default is FALSE. If TRUE, n.chains must be greater than 1, and a .txt file, which contains the point estimates of the potential scale re
trace
a vector of character strings of effect sizes. The character strings should be selected from those specified in param (except "rank.prob"), and trace plots of the specified effect sizes will be saved in users' current working dir
dic
a logical value indicating whether the deviance information criterion (DIC) to be calculated. The default is FALSE.
postdens
a logical value indicating whether to draw the posterior density plots for treatment-specific rates. If TRUE, a .pdf file containing the density plot will be saved in users' current working directory. The default is FALSE.
mcmc.samples
a logical value indicating whether to save MCMC posterior samples in the output object. The default is FALSE.

Value

  • nma.ab.py returns a list with estimates of effect sizes specified in param. If the argument dic = TRUE, the deviance information criterion (DIC) statistic will be returned in the output list. In addition, if conv.diag = TRUE, a .txt file containing the point estimates of the potential scale reduction factor and their upper confidence limits by Gelman and Rubin (1992) will be saved in users' current working directory. If postdens = TRUE, the posterior densities of treatment-specific absolute risks will be saved as a .pdf file. If trace is specified, the trace plots are saved as .png files.

Details

Suppose that a network meta-analysis collects $I$ studies on $K$ treatments, where each study investigates a subset of the $K$ treatments. The exposure time in person-years and the count of events in each treatment group are reported. Label the studies from $i = 1$ to $I$ and the treatments from $k = 1$ to $K$. Let $T_{i}$ be the subset of the $K$ treatments that is compared in the $i$th study. Also, in the $i$th study, let $y_{ik}$ be the number of events in treatment group $k$, and $E_{ik}$ be the corresponding exposure time in person-years. The arm-based network meta-analysis model for these settings is constructed as: $$y_{ik} \sim Pois (E_{ik} \lambda_{ik}) \qquad k \in T_{i}$$ $$\log (\lambda_{ik}) = \mu_{k} + \nu_{ik}$$ $$(\nu_{i1}, \nu_{i2}, \ldots, \nu_{iK})^{T} \sim N (\boldsymbol{0}, \mathbf{\Sigma}_{K}),$$ where $\mathbf{\Sigma}_{K}$ is a $K \times K$ positive definite correlation matrix. $\mu_{k}$'s are treatment-specific fixed effects, and random effects $\nu_{ik}$'s are correlated within each study with the covariance matrix $\mathbf{\Sigma}_{K}$. Using an inverse-Wishart prior for $\mathbf{\Sigma}_{K}$, the above model corresponds to model = "het_cor". Denote $\sigma_{k}$ as the standard deviation of $\nu_{ik}$ and $\mathbf{D} = diag(\sigma_{1}, \ldots, \sigma_{K})$, then the correlation matrix $\mathbf{R}_{K} = \mathbf{D}^{-1} \mathbf{\Sigma}_{K} \mathbf{D}^{-1}$. If we assume that all of the off-diagonal elements in $\mathbf{R}_{K}$ are equal, say to $\rho$, then this model corresponds to model = "het_eqcor". If we further assume the homogeneity of variances of the random effects, that is, $\sigma_{k} = \sigma$ for $k = 1, 2, \ldots, K$, then the model is "hom_eqcor". In addition, for the models "hom_eqcor" and "het_eqcor", setting prior.type as "invgamma" implies using inverse-gamma priors with shape and scale parameters $a, b$ for $\sigma_{k}^2$ or $\sigma^2$, and "unif" implies uniform priors $U(0, c)$ for $\sigma_{k}$ or $\sigma$.

References

Dias S, Sutton AJ, Ades AE, and Welton NJ (2013). "Evidence synthesis for decision making 2: A generalized linear modeling framework for pairwise and network meta-analysis of randomized controlled trials." Med Decis Making 33(5), 607--617. Gelman A and Rubin, DB (1992). "Inference from iterative simulation using multiple sequences." Stat Sci 7(4), 457--472. Lu G and Ades AE (2004). "Combination of direct and indirect evidence in mixed treatment comparisons." Stat Med 23(20), 3105--24. Spiegelhalter DJ, Best NG, Carlin BP, and Van Der Linde A (2002). "Bayesian measures of model complexity and fit." J R Stat Soc Series B Stat Methodol 64(4), 583--639. Zhang J, Carlin BP, Neaton JD, Soon GG, Nie L, Kane R, Virnig BA, Chu H (2014). "Network meta-analysis of randomized clinical trials: Reporting the proper summaries." Clin Trials 11(2), 246--62.

See Also

nma.ab.bin, nma.ab.cont, nma.ab.followup

Examples

Run this code
#data(dietaryfat)
# increase n.iter to reach convergence of MCMC
# increase n.adapt to enhance efficiency
#set.seed(1234)
#py.out <- nma.ab.py(s.id, t.id, r, py, data = dietaryfat, model = "het_cor",
#  n.adapt = 300, n.iter = 100, n.chains = 1)

Run the code above in your browser using DataLab