Calling example("example_pso_mlnmr") will run a ML-NMR model with the plaque psoriasis IPD and AgD, using the code in the Examples section below. The resulting stan_nma object pso_fit will then be available in the global environment.
Details
Plaque psoriasis ML-NMR for use in examples.
Examples
# Set up plaque psoriasis network combining IPD and AgDlibrary(dplyr)pso_ipd <- filter(plaque_psoriasis_ipd, studyc %in% c("UNCOVER-1","UNCOVER-2","UNCOVER-3"))pso_agd <- filter(plaque_psoriasis_agd, studyc =="FIXTURE")head(pso_ipd)head(pso_agd)pso_ipd <- pso_ipd %>% mutate(# Variable transformations bsa = bsa /100, prevsys = as.numeric(prevsys), psa = as.numeric(psa), weight = weight /10, durnpso = durnpso /10,# Treatment classes trtclass = case_when(trtn ==1~"Placebo", trtn %in% c(2,3,5,6)~"IL blocker", trtn ==4~"TNFa blocker"),# Check complete cases for covariates of interest complete = complete.cases(durnpso, prevsys, bsa, weight, psa))pso_agd <- pso_agd %>% mutate(# Variable transformations bsa_mean = bsa_mean /100, bsa_sd = bsa_sd /100, prevsys = prevsys /100, psa = psa /100, weight_mean = weight_mean /10, weight_sd = weight_sd /10, durnpso_mean = durnpso_mean /10, durnpso_sd = durnpso_sd /10,# Treatment classes trtclass = case_when(trtn ==1~"Placebo", trtn %in% c(2,3,5,6)~"IL blocker", trtn ==4~"TNFa blocker"))# Exclude small number of individuals with missing covariatespso_ipd <- filter(pso_ipd, complete)pso_net <- combine_network( set_ipd(pso_ipd, study = studyc, trt = trtc, r = pasi75, trt_class = trtclass), set_agd_arm(pso_agd, study = studyc, trt = trtc, r = pasi75_r, n = pasi75_n, trt_class = trtclass))# Print network detailspso_net
# Add integration points to the networkpso_net <- add_integration(pso_net, durnpso = distr(qgamma, mean = durnpso_mean, sd = durnpso_sd), prevsys = distr(qbern, prob = prevsys), bsa = distr(qlogitnorm, mean = bsa_mean, sd = bsa_sd), weight = distr(qgamma, mean = weight_mean, sd = weight_sd), psa = distr(qbern, prob = psa), n_int =64)# Fitting a ML-NMR model.# Specify a regression model to include effect modifier interactions for five# covariates, along with main (prognostic) effects. We use a probit link and# specify that the two-parameter Binomial approximation for the aggregate-level# likelihood should be used. We set treatment-covariate interactions to be equal# within each class. We narrow the possible range for random initial values with# init_r = 0.1, since probit models in particular are often hard to initialise.# Using the QR decomposition greatly improves sampling efficiency here, as is# often the case for regression models.pso_fit <- nma(pso_net, trt_effects ="fixed", link ="probit", likelihood ="bernoulli2", regression =~(durnpso + prevsys + bsa + weight + psa)*.trt, class_interactions ="common", prior_intercept = normal(scale =10), prior_trt = normal(scale =10), prior_reg = normal(scale =10), init_r =0.1, QR =TRUE)pso_fit