ipdnma.model.onestage {bipd} | R Documentation |
Make an one-stage individual patient data network meta-analysis object containing data, priors, and a JAGS model code
Description
This function sets up data and JAGS code that is needed to run one-stage IPD-NMA models in JAGS.
Usage
ipdnma.model.onestage(
y = NULL,
study = NULL,
treat = NULL,
X = NULL,
response = "normal",
type = "random",
shrinkage = "none",
scale = TRUE,
mean.alpha = 0,
prec.alpha = 0.001,
mean.beta = 0,
prec.beta = 0.001,
mean.gamma = 0,
prec.gamma = 0.001,
mean.delta = 0,
prec.delta = 0.001,
hy.prior = list("dhnorm", 0, 1),
lambda.prior = NULL,
p.ind = NULL,
g = NULL,
hy.prior.eta = NULL
)
Arguments
y |
outcome of the study. Can be continuous or binary. |
study |
vector indicating which study the patient belongs to. Please change the study names into numbers (i.e. 1, 2, 3, etc) |
treat |
vector indicating which treatment the patient was assigned to. Since this is a network meta-analysis and there would be more than 2 treatments, careful naming of treatment is needed. This vector needs to be a sequence from 1:NT where NT is the total number of treatments. Treatment that is assigned 1 would be the baseline treatment. |
X |
matrix of covariate values for each patient. Dimension would be number of patients x number of covariates. |
response |
specification of the outcome type. Must specify either "normal" or "binomial". |
type |
assumption on the treatment effect: either "random" for random effects model or "fixed" for fixed effects model. Default is "random". |
shrinkage |
shrinkage method applied to the effect modifiers. "none" correspond to no shrinkage. "laplace" corresponds to a adaptive shrinkage with a Laplacian prior (ie often known as Bayesian LASSO). "SSVS" corresponds to the Stochastic Search Variable Selection method. SSVS is not strictly a shrinkage method, but pulls the estimated coefficient toward zero through variable selection in each iteration of the MCMC. See O'hara et al (2009) for more details. |
scale |
indicator for scaling the covariates by the overall average; default is TRUE. |
mean.alpha |
prior mean for the study intercept |
prec.alpha |
prior precision for the study intercept |
mean.beta |
prior mean for the regression coefficients of the main effects of the covariates; main effects are assumed to have common effect. |
prec.beta |
prior precision for the regression coefficients of the main effects of the covariates |
mean.gamma |
prior mean for the effect modifiers. This parameter is not used if penalization is placed on effect modifiers. |
prec.gamma |
prior precision for the effect modifiers. This parameter is not used if penalization is placed on effect modifiers. |
mean.delta |
prior mean for the average treatment effect |
prec.delta |
prior precision for the average treatment effect |
hy.prior |
prior for the heterogeneity parameter. Supports uniform, gamma, and half normal for normal and binomial response It should be a list of length 3, where first element should be the distribution (one of dunif, dgamma, dhnorm) and the next two are the parameters associated with the distribution. For example, list("dunif", 0, 5) gives uniform prior with lower bound 0 and upper bound 5 for the heterogeneity parameter. |
lambda.prior |
(only for shrinkage = "laplace") two options for laplace shrinkage. We can put a gamma prior on the lambda (i.e. list("dgamma",2,0.1)) or put a uniform prior on the inverse of lambda (i.e. list("dunif",0,5)) |
p.ind |
(only for shrinkage = "SSVS") prior probability of including each of the effect modifiers. Length should be same as the total length of the covariates. |
g |
(only for shrinkage = "SSVS") multiplier for the precision of spike. Default is g = 1000. |
hy.prior.eta |
(only for shrinkage = "SSVS") standard deviation of the slab prior. Currently only support uniform distribution. Default is list("dunif", 0, 5) |
Value
data.JAGS |
data organized in a list so that it can be used when running code in JAGS |
code |
JAGS code that is used to run the model. Use cat(code) to see the code in a readable format |
model.JAGS |
JAGS code in a function. This is used when running model in parallel |
scale.mean |
mean used in scaling covariates |
scale.sd |
standard deviation used in scaling covariates |
References
Dias S, Sutton AJ, Ades AE, et al. A Generalized Linear Modeling Framework for Pairwise and Network Meta-analysis of Randomized Controlled Trials. Medical Decision Making. 2013;33(5):607-617. doi: 10.1177/0272989X12458724
O'Hara RB, Sillanpaa MJ. A review of Bayesian variable selection methods: what, how and which. Bayesian Anal. 2009;4(1):85-117. doi: 10.1214/09-BA403
Seo M, White IR, Furukawa TA, et al. Comparing methods for estimating patient-specific treatment effects in individual patient data meta-analysis. Stat Med. 2021;40(6):1553-1573. doi: 10.1002/sim.8859
Examples
ds <- generate_ipdnma_example(type = "continuous")
ipd <- with(ds, ipdnma.model.onestage(y = y, study = studyid, treat = treat, X = cbind(z1, z2),
response = "normal", shrinkage = "none"))
samples <- ipd.run(ipd)
treatment.effect(ipd, samples, newpatient= c(1,0.5))