Generate (population-average) relative treatment effects. If a ML-NMR or meta-regression model was fitted, these are specific to each study population.
Usage
relative_effects(
x,
newdata = NULL,
study = NULL,
all_contrasts = FALSE,
trt_ref = NULL,
probs = c(0.025, 0.25, 0.5, 0.75, 0.975),
predictive_distribution = FALSE,
summary = TRUE
)Arguments
- x
A
stan_nmaobject created bynma()- newdata
Only used if a regression model is fitted. A data frame of study details, one row per study, giving the covariate values at which to produce relative effects. Column names must match variables in the regression model. If
NULL, relative effects are produced for all studies in the network.- study
Column of
newdatawhich specifies study names, otherwise studies will be labelled by row number.- all_contrasts
Logical, generate estimates for all contrasts (
TRUE), or just the "basic" contrasts against the network reference treatment (FALSE)? DefaultFALSE.- trt_ref
Reference treatment to construct relative effects against, if
all_contrasts = FALSE. By default, relative effects will be against the network reference treatment. Coerced to character string.- probs
Numeric vector of quantiles of interest to present in computed summary, default
c(0.025, 0.25, 0.5, 0.75, 0.975)- predictive_distribution
Logical, when a random effects model has been fitted, should the predictive distribution for relative effects in a new study be returned? Default
FALSE.- summary
Logical, calculate posterior summaries? Default
TRUE.
Value
A nma_summary object if summary = TRUE, otherwise a list
containing a 3D MCMC array of samples and (for regression models) a data
frame of study information.
See also
plot.nma_summary() for plotting the relative effects.
Examples
## Smoking cessation
# \donttest{
# Run smoking RE NMA example if not already available
if (!exists("smk_fit_RE")) example("example_smk_re", run.donttest = TRUE)
# }
# \donttest{
# Produce relative effects
smk_releff_RE <- relative_effects(smk_fit_RE)
smk_releff_RE
#> mean sd 2.5% 25% 50% 75% 97.5% Bulk_ESS
#> d[Group counselling] 1.08 0.42 0.24 0.81 1.08 1.34 1.93 1927
#> d[Individual counselling] 0.83 0.24 0.37 0.67 0.82 0.99 1.34 1173
#> d[Self-help] 0.50 0.40 -0.29 0.24 0.49 0.76 1.32 1990
#> Tail_ESS Rhat
#> d[Group counselling] 2122 1
#> d[Individual counselling] 1735 1
#> d[Self-help] 2528 1
plot(smk_releff_RE, ref_line = 0)
# Relative effects for all pairwise comparisons
relative_effects(smk_fit_RE, all_contrasts = TRUE)
#> mean sd 2.5% 25% 50%
#> d[Group counselling vs. No intervention] 1.08 0.42 0.24 0.81 1.08
#> d[Individual counselling vs. No intervention] 0.83 0.24 0.37 0.67 0.82
#> d[Self-help vs. No intervention] 0.50 0.40 -0.29 0.24 0.49
#> d[Individual counselling vs. Group counselling] -0.25 0.40 -1.03 -0.51 -0.25
#> d[Self-help vs. Group counselling] -0.58 0.47 -1.48 -0.90 -0.58
#> d[Self-help vs. Individual counselling] -0.33 0.40 -1.11 -0.58 -0.34
#> 75% 97.5% Bulk_ESS Tail_ESS
#> d[Group counselling vs. No intervention] 1.34 1.93 1927 2122
#> d[Individual counselling vs. No intervention] 0.99 1.34 1173 1735
#> d[Self-help vs. No intervention] 0.76 1.32 1990 2528
#> d[Individual counselling vs. Group counselling] 0.02 0.54 2698 2503
#> d[Self-help vs. Group counselling] -0.28 0.38 3019 2749
#> d[Self-help vs. Individual counselling] -0.07 0.47 2311 2468
#> Rhat
#> d[Group counselling vs. No intervention] 1
#> d[Individual counselling vs. No intervention] 1
#> d[Self-help vs. No intervention] 1
#> d[Individual counselling vs. Group counselling] 1
#> d[Self-help vs. Group counselling] 1
#> d[Self-help vs. Individual counselling] 1
# Relative effects against a different reference treatment
relative_effects(smk_fit_RE, trt_ref = "Self-help")
#> mean sd 2.5% 25% 50% 75% 97.5% Bulk_ESS
#> d[No intervention] -0.50 0.40 -1.32 -0.76 -0.49 -0.24 0.29 1990
#> d[Group counselling] 0.58 0.47 -0.38 0.28 0.58 0.90 1.48 3019
#> d[Individual counselling] 0.33 0.40 -0.47 0.07 0.34 0.58 1.11 2311
#> Tail_ESS Rhat
#> d[No intervention] 2528 1
#> d[Group counselling] 2749 1
#> d[Individual counselling] 2468 1
# Transforming to odds ratios
# We work with the array of relative effects samples
LOR_array <- as.array(smk_releff_RE)
OR_array <- exp(LOR_array)
# mcmc_array objects can be summarised to produce a nma_summary object
smk_OR_RE <- summary(OR_array)
# This can then be printed or plotted
smk_OR_RE
#> mean sd 2.5% 25% 50% 75% 97.5% Bulk_ESS Tail_ESS
#> d[Group counselling] 3.22 1.51 1.27 2.24 2.94 3.82 6.89 1927 2122
#> d[Individual counselling] 2.37 0.61 1.44 1.96 2.28 2.68 3.80 1173 1735
#> d[Self-help] 1.79 0.77 0.75 1.27 1.63 2.14 3.73 1990 2528
#> Rhat
#> d[Group counselling] 1
#> d[Individual counselling] 1
#> d[Self-help] 1
plot(smk_OR_RE, ref_line = 1)
# }
## Plaque psoriasis ML-NMR
# \donttest{
# Run plaque psoriasis ML-NMR example if not already available
if (!exists("pso_fit")) example("example_pso_mlnmr", run.donttest = TRUE)
# }
# \donttest{
# Produce population-adjusted relative effects for all study populations in
# the network
pso_releff <- relative_effects(pso_fit)
pso_releff
#> ---------------------------------------------------------------- Study: FIXTURE ----
#>
#> Covariate values:
#> durnpso prevsys bsa weight psa
#> 1.6 0.62 0.34 8.34 0.14
#>
#> mean sd 2.5% 25% 50% 75% 97.5% Bulk_ESS Tail_ESS Rhat
#> d[FIXTURE: ETN] 1.66 0.09 1.48 1.60 1.66 1.72 1.83 4513 3345 1
#> d[FIXTURE: IXE_Q2W] 3.03 0.10 2.84 2.96 3.02 3.09 3.22 5525 3008 1
#> d[FIXTURE: IXE_Q4W] 2.61 0.09 2.44 2.55 2.61 2.68 2.80 5577 3082 1
#> d[FIXTURE: SEC_150] 2.22 0.12 1.99 2.14 2.22 2.29 2.45 4577 3514 1
#> d[FIXTURE: SEC_300] 2.52 0.12 2.29 2.44 2.52 2.60 2.76 5349 3031 1
#>
#> -------------------------------------------------------------- Study: UNCOVER-1 ----
#>
#> Covariate values:
#> durnpso prevsys bsa weight psa
#> 2 0.73 0.28 9.24 0.28
#>
#> mean sd 2.5% 25% 50% 75% 97.5% Bulk_ESS Tail_ESS
#> d[UNCOVER-1: ETN] 1.51 0.09 1.34 1.45 1.51 1.56 1.68 3949 3556
#> d[UNCOVER-1: IXE_Q2W] 2.92 0.09 2.76 2.86 2.92 2.98 3.10 5578 3398
#> d[UNCOVER-1: IXE_Q4W] 2.51 0.08 2.35 2.45 2.51 2.57 2.67 5584 3028
#> d[UNCOVER-1: SEC_150] 2.11 0.12 1.88 2.03 2.11 2.20 2.36 4648 3485
#> d[UNCOVER-1: SEC_300] 2.42 0.12 2.18 2.33 2.42 2.50 2.66 5052 3333
#> Rhat
#> d[UNCOVER-1: ETN] 1
#> d[UNCOVER-1: IXE_Q2W] 1
#> d[UNCOVER-1: IXE_Q4W] 1
#> d[UNCOVER-1: SEC_150] 1
#> d[UNCOVER-1: SEC_300] 1
#>
#> -------------------------------------------------------------- Study: UNCOVER-2 ----
#>
#> Covariate values:
#> durnpso prevsys bsa weight psa
#> 1.87 0.64 0.27 9.17 0.24
#>
#> mean sd 2.5% 25% 50% 75% 97.5% Bulk_ESS Tail_ESS
#> d[UNCOVER-2: ETN] 1.51 0.08 1.35 1.45 1.51 1.56 1.67 3931 3260
#> d[UNCOVER-2: IXE_Q2W] 2.92 0.09 2.76 2.86 2.92 2.98 3.10 5489 3424
#> d[UNCOVER-2: IXE_Q4W] 2.51 0.08 2.36 2.45 2.51 2.56 2.67 5465 3262
#> d[UNCOVER-2: SEC_150] 2.11 0.12 1.88 2.03 2.11 2.19 2.35 4745 3537
#> d[UNCOVER-2: SEC_300] 2.42 0.12 2.18 2.34 2.42 2.50 2.66 5133 3189
#> Rhat
#> d[UNCOVER-2: ETN] 1
#> d[UNCOVER-2: IXE_Q2W] 1
#> d[UNCOVER-2: IXE_Q4W] 1
#> d[UNCOVER-2: SEC_150] 1
#> d[UNCOVER-2: SEC_300] 1
#>
#> -------------------------------------------------------------- Study: UNCOVER-3 ----
#>
#> Covariate values:
#> durnpso prevsys bsa weight psa
#> 1.78 0.59 0.28 9.01 0.2
#>
#> mean sd 2.5% 25% 50% 75% 97.5% Bulk_ESS Tail_ESS
#> d[UNCOVER-3: ETN] 1.53 0.08 1.38 1.47 1.53 1.58 1.69 3948 3433
#> d[UNCOVER-3: IXE_Q2W] 2.94 0.09 2.77 2.88 2.94 3.00 3.11 5582 3334
#> d[UNCOVER-3: IXE_Q4W] 2.53 0.08 2.37 2.47 2.53 2.58 2.68 5325 3410
#> d[UNCOVER-3: SEC_150] 2.13 0.12 1.90 2.05 2.13 2.21 2.36 4752 3428
#> d[UNCOVER-3: SEC_300] 2.43 0.12 2.21 2.35 2.43 2.51 2.67 5092 3372
#> Rhat
#> d[UNCOVER-3: ETN] 1
#> d[UNCOVER-3: IXE_Q2W] 1
#> d[UNCOVER-3: IXE_Q4W] 1
#> d[UNCOVER-3: SEC_150] 1
#> d[UNCOVER-3: SEC_300] 1
#>
plot(pso_releff, ref_line = 0)
# Produce population-adjusted relative effects for a different target
# population
new_agd_means <- data.frame(
bsa = 0.6,
prevsys = 0.1,
psa = 0.2,
weight = 10,
durnpso = 3)
relative_effects(pso_fit, newdata = new_agd_means)
#> ------------------------------------------------------------------ Study: New 1 ----
#>
#> Covariate values:
#> durnpso prevsys bsa weight psa
#> 3 0.1 0.6 10 0.2
#>
#> mean sd 2.5% 25% 50% 75% 97.5% Bulk_ESS Tail_ESS Rhat
#> d[New 1: ETN] 1.25 0.23 0.80 1.10 1.25 1.40 1.71 6553 3024 1
#> d[New 1: IXE_Q2W] 2.88 0.23 2.46 2.73 2.88 3.04 3.34 6972 3082 1
#> d[New 1: IXE_Q4W] 2.47 0.22 2.05 2.32 2.47 2.62 2.91 6962 3203 1
#> d[New 1: SEC_150] 2.08 0.23 1.63 1.92 2.07 2.23 2.53 6516 2947 1
#> d[New 1: SEC_300] 2.38 0.23 1.95 2.22 2.38 2.53 2.83 7079 3406 1
#>
# }