This vignette describes the analysis of data on the number of new
cases of diabetes in 22 trials of 6 antihypertensive drugs (Elliott and Meyer 2007;
Dias et al. 2011). The data are available
in this package as diabetes
:
head(diabetes)
#> studyn studyc trtn trtc r n time
#> 1 1 MRC-E 1 Diuretic 43 1081 5.8
#> 2 1 MRC-E 2 Placebo 34 2213 5.8
#> 3 1 MRC-E 3 Beta Blocker 37 1102 5.8
#> 4 2 EWPH 1 Diuretic 29 416 4.7
#> 5 2 EWPH 2 Placebo 20 424 4.7
#> 6 3 SHEP 1 Diuretic 140 1631 3.0
We begin by setting up the network. We have arm-level count data
giving the number of new cases of diabetes (r
) out of the
total (n
) in each arm, so we use the function
set_agd_arm()
. For computational efficiency, we let “Beta
Blocker” be set as the network reference treatment by default. Elliott and Meyer (2007) and Dias
et al. (2011) use “Diuretic” as the
reference, but it is a simple matter to transform the results after
fitting the NMA model.1
db_net <- set_agd_arm(diabetes,
study = studyc,
trt = trtc,
r = r,
n = n)
db_net
#> A network with 22 AgD studies (arm-based).
#>
#> ------------------------------------------------------- AgD studies (arm-based) ----
#> Study Treatment arms
#> AASK 3: Beta Blocker | ACE Inhibitor | CCB
#> ALLHAT 3: ACE Inhibitor | CCB | Diuretic
#> ALPINE 2: ARB | Diuretic
#> ANBP-2 2: ACE Inhibitor | Diuretic
#> ASCOT 2: Beta Blocker | CCB
#> CAPPP 2: Beta Blocker | ACE Inhibitor
#> CHARM 2: ARB | Placebo
#> DREAM 2: ACE Inhibitor | Placebo
#> EWPH 2: Diuretic | Placebo
#> FEVER 2: CCB | Placebo
#> ... plus 12 more studies
#>
#> Outcome type: count
#> ------------------------------------------------------------------------------------
#> Total number of treatments: 6
#> Total number of studies: 22
#> Reference treatment is: Beta Blocker
#> Network is connected
We also have details of length of follow-up in years in each trial
(time
), which we will use as an offset with a cloglog link
function to model the data as rates. We do not have to specify this in
the function set_agd_arm()
: any additional columns in the
data (e.g. offsets or covariates, here the column time
)
will automatically be made available in the network.
Plot the network structure.
We fit both fixed effect (FE) and random effects (RE) models.
First, we fit a fixed effect model using the nma()
function with trt_effects = "fixed"
. We use \(\mathrm{N}(0, 100^2)\) prior distributions
for the treatment effects \(d_k\) and
study-specific intercepts \(\mu_j\). We
can examine the range of parameter values implied by these prior
distributions with the summary()
method:
summary(normal(scale = 100))
#> A Normal prior distribution: location = 0, scale = 100.
#> 50% of the prior density lies between -67.45 and 67.45.
#> 95% of the prior density lies between -196 and 196.
The model is fitted using the nma()
function. We specify
that a cloglog link will be used with link = "cloglog"
(the
Binomial likelihood is the default for these data), and specify the log
follow-up time offset using the regression formula
regression = ~offset(log(time))
.
db_fit_FE <- nma(db_net,
trt_effects = "fixed",
link = "cloglog",
regression = ~offset(log(time)),
prior_intercept = normal(scale = 100),
prior_trt = normal(scale = 100))
#> Note: No treatment classes specified in network, any interactions in `regression` formula will be separate (independent) for each treatment.
#> Use set_*() argument `trt_class` and nma() argument `class_interactions` to change this.
#> Note: Setting "Beta Blocker" as the network reference treatment.
Basic parameter summaries are given by the print()
method:
db_fit_FE
#> A fixed effects NMA with a binomial likelihood (cloglog link).
#> Regression model: ~offset(log(time)).
#> Inference for Stan model: binomial_1par.
#> 4 chains, each with iter=2000; warmup=1000; thin=1;
#> post-warmup draws per chain=1000, total post-warmup draws=4000.
#>
#> mean se_mean sd 2.5% 25% 50% 75% 97.5% n_eff
#> d[ACE Inhibitor] -0.30 0.00 0.05 -0.39 -0.33 -0.30 -0.27 -0.21 1441
#> d[ARB] -0.39 0.00 0.05 -0.48 -0.43 -0.39 -0.36 -0.31 2116
#> d[CCB] -0.20 0.00 0.03 -0.26 -0.22 -0.20 -0.17 -0.13 1884
#> d[Diuretic] 0.06 0.00 0.06 -0.05 0.02 0.06 0.10 0.17 1791
#> d[Placebo] -0.19 0.00 0.05 -0.29 -0.22 -0.19 -0.16 -0.09 1429
#> lp__ -37970.32 0.09 3.58 -37978.17 -37972.59 -37969.93 -37967.70 -37964.34 1538
#> Rhat
#> d[ACE Inhibitor] 1
#> d[ARB] 1
#> d[CCB] 1
#> d[Diuretic] 1
#> d[Placebo] 1
#> lp__ 1
#>
#> Samples were drawn using NUTS(diag_e) at Mon Apr 29 16:39:01 2024.
#> For each parameter, n_eff is a crude measure of effective sample size,
#> and Rhat is the potential scale reduction factor on split chains (at
#> convergence, Rhat=1).
By default, summaries of the study-specific intercepts \(\mu_j\) are hidden, but could be examined
by changing the pars
argument:
The prior and posterior distributions can be compared visually using
the plot_prior_posterior()
function:
We now fit a random effects model using the nma()
function with trt_effects = "random"
. Again, we use \(\mathrm{N}(0, 100^2)\) prior distributions
for the treatment effects \(d_k\) and
study-specific intercepts \(\mu_j\),
and we additionally use a \(\textrm{half-N}(5^2)\) prior for the
heterogeneity standard deviation \(\tau\). We can examine the range of
parameter values implied by these prior distributions with the
summary()
method:
summary(normal(scale = 100))
#> A Normal prior distribution: location = 0, scale = 100.
#> 50% of the prior density lies between -67.45 and 67.45.
#> 95% of the prior density lies between -196 and 196.
summary(half_normal(scale = 5))
#> A half-Normal prior distribution: location = 0, scale = 5.
#> 50% of the prior density lies between 0 and 3.37.
#> 95% of the prior density lies between 0 and 9.8.
Fitting the RE model
db_fit_RE <- nma(db_net,
trt_effects = "random",
link = "cloglog",
regression = ~offset(log(time)),
prior_intercept = normal(scale = 10),
prior_trt = normal(scale = 10),
prior_het = half_normal(scale = 5),
init_r = 0.5)
#> Note: No treatment classes specified in network, any interactions in `regression` formula will be separate (independent) for each treatment.
#> Use set_*() argument `trt_class` and nma() argument `class_interactions` to change this.
#> Note: Setting "Beta Blocker" as the network reference treatment.
Basic parameter summaries are given by the print()
method:
db_fit_RE
#> A random effects NMA with a binomial likelihood (cloglog link).
#> Regression model: ~offset(log(time)).
#> Inference for Stan model: binomial_1par.
#> 4 chains, each with iter=2000; warmup=1000; thin=1;
#> post-warmup draws per chain=1000, total post-warmup draws=4000.
#>
#> mean se_mean sd 2.5% 25% 50% 75% 97.5% n_eff
#> d[ACE Inhibitor] -0.33 0.00 0.08 -0.49 -0.38 -0.33 -0.28 -0.18 2166
#> d[ARB] -0.40 0.00 0.10 -0.59 -0.46 -0.40 -0.34 -0.22 2355
#> d[CCB] -0.17 0.00 0.07 -0.30 -0.21 -0.17 -0.13 -0.04 2131
#> d[Diuretic] 0.07 0.00 0.09 -0.10 0.02 0.07 0.13 0.25 2205
#> d[Placebo] -0.22 0.00 0.09 -0.40 -0.27 -0.21 -0.16 -0.05 1782
#> lp__ -37981.26 0.24 6.96 -37996.03 -37985.56 -37980.85 -37976.46 -37968.78 845
#> tau 0.13 0.00 0.04 0.05 0.10 0.12 0.15 0.23 924
#> Rhat
#> d[ACE Inhibitor] 1
#> d[ARB] 1
#> d[CCB] 1
#> d[Diuretic] 1
#> d[Placebo] 1
#> lp__ 1
#> tau 1
#>
#> Samples were drawn using NUTS(diag_e) at Mon Apr 29 16:39:24 2024.
#> For each parameter, n_eff is a crude measure of effective sample size,
#> and Rhat is the potential scale reduction factor on split chains (at
#> convergence, Rhat=1).
By default, summaries of the study-specific intercepts \(\mu_j\) and study-specific relative effects
\(\delta_{jk}\) are hidden, but could
be examined by changing the pars
argument:
The prior and posterior distributions can be compared visually using
the plot_prior_posterior()
function:
Model fit can be checked using the dic()
function:
The FE model is a very poor fit to the data, with a residual deviance much higher than the number of data points. The RE model fits the data better, and has a much lower DIC; we prefer the RE model.
We can also examine the residual deviance contributions with the
corresponding plot()
method.
For comparison with Elliott and Meyer (2007) and Dias
et al. (2011), we can produce relative
effects against “Diuretic” using the relative_effects()
function with trt_ref = "Diuretic"
:
(db_releff_FE <- relative_effects(db_fit_FE, trt_ref = "Diuretic"))
#> mean sd 2.5% 25% 50% 75% 97.5% Bulk_ESS Tail_ESS Rhat
#> d[Beta Blocker] -0.06 0.06 -0.17 -0.10 -0.06 -0.02 0.05 1801 2541 1
#> d[ACE Inhibitor] -0.36 0.05 -0.46 -0.39 -0.36 -0.32 -0.25 4373 3227 1
#> d[ARB] -0.45 0.06 -0.57 -0.49 -0.45 -0.41 -0.33 3366 3057 1
#> d[CCB] -0.25 0.05 -0.36 -0.29 -0.25 -0.21 -0.15 2922 2896 1
#> d[Placebo] -0.25 0.06 -0.36 -0.28 -0.25 -0.21 -0.13 4119 3051 1
plot(db_releff_FE, ref_line = 0)
(db_releff_RE <- relative_effects(db_fit_RE, trt_ref = "Diuretic"))
#> mean sd 2.5% 25% 50% 75% 97.5% Bulk_ESS Tail_ESS Rhat
#> d[Beta Blocker] -0.07 0.09 -0.25 -0.13 -0.07 -0.02 0.10 2263 2536 1
#> d[ACE Inhibitor] -0.40 0.09 -0.58 -0.46 -0.40 -0.34 -0.24 4739 2870 1
#> d[ARB] -0.47 0.11 -0.71 -0.54 -0.47 -0.40 -0.26 4152 2646 1
#> d[CCB] -0.24 0.08 -0.41 -0.29 -0.24 -0.19 -0.08 5016 3221 1
#> d[Placebo] -0.29 0.09 -0.47 -0.34 -0.29 -0.23 -0.12 4421 3111 1
plot(db_releff_RE, ref_line = 0)
Dias et al. (2011) produce absolute predictions of the
probability of developing diabetes after three years, assuming a Normal
distribution on the baseline cloglog probability of developing diabetes
on diuretic treatment with mean \(-4.2\) and precision \(1.11\). We can replicate these results
using the predict()
method. We specify a data frame of
newdata
, containing the time
offset(s) at
which to produce predictions (here only 3 years). The
baseline
argument takes a distr()
distribution
object with which we specify the corresponding Normal distribution on
the baseline cloglog probability, and we set
baseline_trt = "Diuretic"
to indicate that the baseline
distribution corresponds to “Diuretic” rather than the network reference
“Beta Blocker”. We set type = "response"
to produce
predicted event probabilities (type = "link"
would produce
predicted cloglog probabilities).
db_pred_FE <- predict(db_fit_FE,
newdata = data.frame(time = 3),
baseline = distr(qnorm, mean = -4.2, sd = 1.11^-0.5),
baseline_trt = "Diuretic",
type = "response")
db_pred_FE
#> ------------------------------------------------------------------ Study: New 1 ----
#>
#> mean sd 2.5% 25% 50% 75% 97.5% Bulk_ESS Tail_ESS Rhat
#> pred[New 1: Beta Blocker] 0.06 0.07 0.01 0.02 0.04 0.08 0.24 3758 3959 1
#> pred[New 1: ACE Inhibitor] 0.05 0.05 0.01 0.02 0.03 0.06 0.19 3755 4098 1
#> pred[New 1: ARB] 0.04 0.05 0.00 0.02 0.03 0.05 0.17 3767 4097 1
#> pred[New 1: CCB] 0.05 0.06 0.01 0.02 0.03 0.06 0.20 3760 4046 1
#> pred[New 1: Diuretic] 0.07 0.07 0.01 0.02 0.04 0.08 0.26 3755 3924 1
#> pred[New 1: Placebo] 0.05 0.06 0.01 0.02 0.03 0.06 0.21 3767 3917 1
plot(db_pred_FE)
db_pred_RE <- predict(db_fit_RE,
newdata = data.frame(time = 3),
baseline = distr(qnorm, mean = -4.2, sd = 1.11^-0.5),
baseline_trt = "Diuretic",
type = "response")
db_pred_RE
#> ------------------------------------------------------------------ Study: New 1 ----
#>
#> mean sd 2.5% 25% 50% 75% 97.5% Bulk_ESS Tail_ESS Rhat
#> pred[New 1: Beta Blocker] 0.06 0.06 0.01 0.02 0.04 0.07 0.24 3991 3930 1
#> pred[New 1: ACE Inhibitor] 0.04 0.05 0.00 0.02 0.03 0.05 0.18 4017 4015 1
#> pred[New 1: ARB] 0.04 0.05 0.00 0.01 0.03 0.05 0.16 4001 3932 1
#> pred[New 1: CCB] 0.05 0.06 0.01 0.02 0.03 0.06 0.20 4049 3974 1
#> pred[New 1: Diuretic] 0.06 0.07 0.01 0.02 0.04 0.08 0.25 3989 3892 1
#> pred[New 1: Placebo] 0.05 0.05 0.01 0.02 0.03 0.06 0.19 4002 4015 1
plot(db_pred_RE)
If the baseline
and newdata
arguments are
omitted, predicted probabilities will be produced for every study in the
network based on their follow-up times and estimated baseline cloglog
probabilities \(\mu_j\):
db_pred_RE_studies <- predict(db_fit_RE, type = "response")
db_pred_RE_studies
#> ------------------------------------------------------------------- Study: AASK ----
#>
#> mean sd 2.5% 25% 50% 75% 97.5% Bulk_ESS Tail_ESS Rhat
#> pred[AASK: Beta Blocker] 0.17 0.02 0.14 0.16 0.17 0.18 0.20 5589 2823 1
#> pred[AASK: ACE Inhibitor] 0.12 0.01 0.10 0.12 0.12 0.13 0.15 4599 2711 1
#> pred[AASK: ARB] 0.12 0.01 0.09 0.11 0.12 0.13 0.15 4401 2946 1
#> pred[AASK: CCB] 0.14 0.01 0.12 0.13 0.14 0.15 0.18 5196 2850 1
#> pred[AASK: Diuretic] 0.18 0.02 0.14 0.17 0.18 0.19 0.22 4210 2956 1
#> pred[AASK: Placebo] 0.14 0.02 0.11 0.13 0.14 0.15 0.17 3677 2770 1
#>
#> ----------------------------------------------------------------- Study: ALLHAT ----
#>
#> mean sd 2.5% 25% 50% 75% 97.5% Bulk_ESS Tail_ESS Rhat
#> pred[ALLHAT: Beta Blocker] 0.04 0.01 0.03 0.04 0.04 0.05 0.06 2678 2340 1
#> pred[ALLHAT: ACE Inhibitor] 0.03 0.00 0.02 0.03 0.03 0.03 0.04 4297 2350 1
#> pred[ALLHAT: ARB] 0.03 0.00 0.02 0.03 0.03 0.03 0.04 3918 2452 1
#> pred[ALLHAT: CCB] 0.04 0.00 0.03 0.03 0.04 0.04 0.05 4199 2190 1
#> pred[ALLHAT: Diuretic] 0.05 0.01 0.04 0.04 0.05 0.05 0.06 4544 2710 1
#> pred[ALLHAT: Placebo] 0.03 0.00 0.03 0.03 0.03 0.04 0.04 3729 2838 1
#>
#> ----------------------------------------------------------------- Study: ALPINE ----
#>
#> mean sd 2.5% 25% 50% 75% 97.5% Bulk_ESS Tail_ESS Rhat
#> pred[ALPINE: Beta Blocker] 0.03 0.01 0.01 0.02 0.03 0.03 0.05 6749 3136 1
#> pred[ALPINE: ACE Inhibitor] 0.02 0.01 0.01 0.01 0.02 0.02 0.04 7455 3173 1
#> pred[ALPINE: ARB] 0.02 0.01 0.01 0.01 0.02 0.02 0.03 7520 3382 1
#> pred[ALPINE: CCB] 0.02 0.01 0.01 0.02 0.02 0.03 0.04 7470 3346 1
#> pred[ALPINE: Diuretic] 0.03 0.01 0.01 0.02 0.03 0.03 0.05 7744 3343 1
#> pred[ALPINE: Placebo] 0.02 0.01 0.01 0.02 0.02 0.03 0.04 7705 3296 1
#>
#> ----------------------------------------------------------------- Study: ANBP-2 ----
#>
#> mean sd 2.5% 25% 50% 75% 97.5% Bulk_ESS Tail_ESS Rhat
#> pred[ANBP-2: Beta Blocker] 0.07 0.01 0.05 0.06 0.07 0.07 0.09 3624 2292 1
#> pred[ANBP-2: ACE Inhibitor] 0.05 0.01 0.04 0.04 0.05 0.05 0.06 5435 2763 1
#> pred[ANBP-2: ARB] 0.05 0.01 0.03 0.04 0.05 0.05 0.06 5110 2884 1
#> pred[ANBP-2: CCB] 0.06 0.01 0.04 0.05 0.06 0.06 0.08 5140 3016 1
#> pred[ANBP-2: Diuretic] 0.07 0.01 0.06 0.07 0.07 0.08 0.09 5670 2938 1
#> pred[ANBP-2: Placebo] 0.05 0.01 0.04 0.05 0.05 0.06 0.07 5632 3088 1
#>
#> ------------------------------------------------------------------ Study: ASCOT ----
#>
#> mean sd 2.5% 25% 50% 75% 97.5% Bulk_ESS Tail_ESS Rhat
#> pred[ASCOT: Beta Blocker] 0.11 0.00 0.10 0.11 0.11 0.11 0.12 5348 2746 1
#> pred[ASCOT: ACE Inhibitor] 0.08 0.01 0.07 0.08 0.08 0.09 0.10 2684 2859 1
#> pred[ASCOT: ARB] 0.08 0.01 0.06 0.07 0.08 0.08 0.09 2879 2828 1
#> pred[ASCOT: CCB] 0.10 0.01 0.08 0.09 0.09 0.10 0.11 2513 2732 1
#> pred[ASCOT: Diuretic] 0.12 0.01 0.10 0.11 0.12 0.13 0.14 2542 2777 1
#> pred[ASCOT: Placebo] 0.09 0.01 0.08 0.09 0.09 0.10 0.11 2132 2485 1
#>
#> ------------------------------------------------------------------ Study: CAPPP ----
#>
#> mean sd 2.5% 25% 50% 75% 97.5% Bulk_ESS Tail_ESS Rhat
#> pred[CAPPP: Beta Blocker] 0.07 0.00 0.07 0.07 0.07 0.08 0.08 5261 2742 1
#> pred[CAPPP: ACE Inhibitor] 0.05 0.00 0.05 0.05 0.05 0.06 0.06 2480 2616 1
#> pred[CAPPP: ARB] 0.05 0.01 0.04 0.05 0.05 0.05 0.06 2693 2747 1
#> pred[CAPPP: CCB] 0.06 0.00 0.05 0.06 0.06 0.07 0.07 3060 2835 1
#> pred[CAPPP: Diuretic] 0.08 0.01 0.07 0.08 0.08 0.08 0.10 2808 2656 1
#> pred[CAPPP: Placebo] 0.06 0.01 0.05 0.06 0.06 0.06 0.07 2061 2446 1
#>
#> ------------------------------------------------------------------ Study: CHARM ----
#>
#> mean sd 2.5% 25% 50% 75% 97.5% Bulk_ESS Tail_ESS Rhat
#> pred[CHARM: Beta Blocker] 0.09 0.01 0.07 0.08 0.09 0.10 0.12 3076 2496 1
#> pred[CHARM: ACE Inhibitor] 0.07 0.01 0.05 0.06 0.07 0.07 0.09 4908 2727 1
#> pred[CHARM: ARB] 0.06 0.01 0.05 0.06 0.06 0.07 0.08 5553 2948 1
#> pred[CHARM: CCB] 0.08 0.01 0.06 0.07 0.08 0.08 0.10 4237 2548 1
#> pred[CHARM: Diuretic] 0.10 0.01 0.07 0.09 0.10 0.11 0.13 4547 2741 1
#> pred[CHARM: Placebo] 0.07 0.01 0.06 0.07 0.07 0.08 0.10 5334 2774 1
#>
#> ------------------------------------------------------------------ Study: DREAM ----
#>
#> mean sd 2.5% 25% 50% 75% 97.5% Bulk_ESS Tail_ESS Rhat
#> pred[DREAM: Beta Blocker] 0.23 0.03 0.18 0.21 0.23 0.24 0.29 2691 2182 1
#> pred[DREAM: ACE Inhibitor] 0.17 0.02 0.13 0.16 0.17 0.18 0.21 4867 2944 1
#> pred[DREAM: ARB] 0.16 0.02 0.12 0.14 0.16 0.17 0.21 4700 3176 1
#> pred[DREAM: CCB] 0.20 0.02 0.15 0.18 0.19 0.21 0.25 4052 2737 1
#> pred[DREAM: Diuretic] 0.24 0.03 0.19 0.22 0.24 0.26 0.31 4468 2471 1
#> pred[DREAM: Placebo] 0.19 0.02 0.15 0.18 0.19 0.20 0.23 5260 3192 1
#>
#> ------------------------------------------------------------------- Study: EWPH ----
#>
#> mean sd 2.5% 25% 50% 75% 97.5% Bulk_ESS Tail_ESS Rhat
#> pred[EWPH: Beta Blocker] 0.06 0.01 0.04 0.05 0.06 0.07 0.09 4260 3014 1
#> pred[EWPH: ACE Inhibitor] 0.05 0.01 0.03 0.04 0.04 0.05 0.06 5766 2489 1
#> pred[EWPH: ARB] 0.04 0.01 0.03 0.04 0.04 0.05 0.06 5411 2930 1
#> pred[EWPH: CCB] 0.05 0.01 0.04 0.05 0.05 0.06 0.08 5420 3027 1
#> pred[EWPH: Diuretic] 0.07 0.01 0.05 0.06 0.07 0.07 0.09 6018 3048 1
#> pred[EWPH: Placebo] 0.05 0.01 0.03 0.04 0.05 0.06 0.07 5746 3125 1
#>
#> ------------------------------------------------------------------ Study: FEVER ----
#>
#> mean sd 2.5% 25% 50% 75% 97.5% Bulk_ESS Tail_ESS Rhat
#> pred[FEVER: Beta Blocker] 0.04 0.01 0.03 0.04 0.04 0.04 0.05 3545 2549 1
#> pred[FEVER: ACE Inhibitor] 0.03 0.00 0.02 0.03 0.03 0.03 0.04 5031 2991 1
#> pred[FEVER: ARB] 0.03 0.00 0.02 0.03 0.03 0.03 0.04 4868 3001 1
#> pred[FEVER: CCB] 0.04 0.00 0.03 0.03 0.03 0.04 0.05 4917 2911 1
#> pred[FEVER: Diuretic] 0.04 0.01 0.03 0.04 0.04 0.05 0.06 5000 2952 1
#> pred[FEVER: Placebo] 0.03 0.00 0.03 0.03 0.03 0.04 0.04 4947 2951 1
#>
#> ----------------------------------------------------------------- Study: HAPPHY ----
#>
#> mean sd 2.5% 25% 50% 75% 97.5% Bulk_ESS Tail_ESS Rhat
#> pred[HAPPHY: Beta Blocker] 0.02 0 0.02 0.02 0.02 0.03 0.03 6034 3112 1
#> pred[HAPPHY: ACE Inhibitor] 0.02 0 0.01 0.02 0.02 0.02 0.02 4671 3258 1
#> pred[HAPPHY: ARB] 0.02 0 0.01 0.02 0.02 0.02 0.02 4466 2589 1
#> pred[HAPPHY: CCB] 0.02 0 0.02 0.02 0.02 0.02 0.03 4620 3066 1
#> pred[HAPPHY: Diuretic] 0.03 0 0.02 0.02 0.03 0.03 0.03 3741 2856 1
#> pred[HAPPHY: Placebo] 0.02 0 0.02 0.02 0.02 0.02 0.03 4043 2595 1
#>
#> ------------------------------------------------------------------- Study: HOPE ----
#>
#> mean sd 2.5% 25% 50% 75% 97.5% Bulk_ESS Tail_ESS Rhat
#> pred[HOPE: Beta Blocker] 0.06 0.01 0.04 0.05 0.06 0.06 0.08 3592 3033 1
#> pred[HOPE: ACE Inhibitor] 0.04 0.01 0.03 0.04 0.04 0.05 0.05 5488 2938 1
#> pred[HOPE: ARB] 0.04 0.01 0.03 0.04 0.04 0.04 0.05 5239 3146 1
#> pred[HOPE: CCB] 0.05 0.01 0.04 0.04 0.05 0.05 0.07 4921 2944 1
#> pred[HOPE: Diuretic] 0.06 0.01 0.05 0.06 0.06 0.07 0.08 5345 2844 1
#> pred[HOPE: Placebo] 0.05 0.01 0.04 0.04 0.05 0.05 0.06 6036 2557 1
#>
#> ---------------------------------------------------------------- Study: INSIGHT ----
#>
#> mean sd 2.5% 25% 50% 75% 97.5% Bulk_ESS Tail_ESS Rhat
#> pred[INSIGHT: Beta Blocker] 0.07 0.01 0.05 0.06 0.06 0.07 0.09 3795 3054 1
#> pred[INSIGHT: ACE Inhibitor] 0.05 0.01 0.03 0.04 0.05 0.05 0.06 5173 3064 1
#> pred[INSIGHT: ARB] 0.04 0.01 0.03 0.04 0.04 0.05 0.06 4761 2929 1
#> pred[INSIGHT: CCB] 0.06 0.01 0.04 0.05 0.05 0.06 0.07 5268 3091 1
#> pred[INSIGHT: Diuretic] 0.07 0.01 0.05 0.06 0.07 0.07 0.09 5693 3062 1
#> pred[INSIGHT: Placebo] 0.05 0.01 0.04 0.05 0.05 0.06 0.07 4825 2422 1
#>
#> ----------------------------------------------------------------- Study: INVEST ----
#>
#> mean sd 2.5% 25% 50% 75% 97.5% Bulk_ESS Tail_ESS Rhat
#> pred[INVEST: Beta Blocker] 0.08 0.00 0.08 0.08 0.08 0.08 0.09 7467 3150 1
#> pred[INVEST: ACE Inhibitor] 0.06 0.01 0.05 0.06 0.06 0.06 0.07 2655 2586 1
#> pred[INVEST: ARB] 0.06 0.01 0.05 0.05 0.06 0.06 0.07 2826 2663 1
#> pred[INVEST: CCB] 0.07 0.00 0.06 0.07 0.07 0.07 0.08 2641 2777 1
#> pred[INVEST: Diuretic] 0.09 0.01 0.07 0.08 0.09 0.09 0.10 2722 2513 1
#> pred[INVEST: Placebo] 0.07 0.01 0.06 0.06 0.07 0.07 0.08 2204 2307 1
#>
#> ------------------------------------------------------------------- Study: LIFE ----
#>
#> mean sd 2.5% 25% 50% 75% 97.5% Bulk_ESS Tail_ESS Rhat
#> pred[LIFE: Beta Blocker] 0.08 0.00 0.07 0.08 0.08 0.08 0.09 7431 2608 1
#> pred[LIFE: ACE Inhibitor] 0.06 0.01 0.05 0.06 0.06 0.06 0.07 2849 2562 1
#> pred[LIFE: ARB] 0.06 0.01 0.05 0.05 0.06 0.06 0.07 2675 2349 1
#> pred[LIFE: CCB] 0.07 0.01 0.06 0.07 0.07 0.07 0.08 3157 2710 1
#> pred[LIFE: Diuretic] 0.09 0.01 0.07 0.08 0.09 0.09 0.10 2868 2940 1
#> pred[LIFE: Placebo] 0.07 0.01 0.05 0.06 0.07 0.07 0.08 2250 2594 1
#>
#> ------------------------------------------------------------------ Study: MRC-E ----
#>
#> mean sd 2.5% 25% 50% 75% 97.5% Bulk_ESS Tail_ESS Rhat
#> pred[MRC-E: Beta Blocker] 0.03 0 0.02 0.03 0.03 0.03 0.04 4227 3157 1
#> pred[MRC-E: ACE Inhibitor] 0.02 0 0.02 0.02 0.02 0.02 0.03 6049 3455 1
#> pred[MRC-E: ARB] 0.02 0 0.01 0.02 0.02 0.02 0.03 5343 2976 1
#> pred[MRC-E: CCB] 0.03 0 0.02 0.02 0.02 0.03 0.03 4825 3577 1
#> pred[MRC-E: Diuretic] 0.03 0 0.02 0.03 0.03 0.03 0.04 3999 3323 1
#> pred[MRC-E: Placebo] 0.02 0 0.02 0.02 0.02 0.03 0.03 5412 3398 1
#>
#> ----------------------------------------------------------------- Study: NORDIL ----
#>
#> mean sd 2.5% 25% 50% 75% 97.5% Bulk_ESS Tail_ESS Rhat
#> pred[NORDIL: Beta Blocker] 0.05 0.00 0.04 0.05 0.05 0.05 0.06 7013 2923 1
#> pred[NORDIL: ACE Inhibitor] 0.04 0.00 0.03 0.03 0.04 0.04 0.04 3022 3151 1
#> pred[NORDIL: ARB] 0.03 0.00 0.03 0.03 0.03 0.04 0.04 3199 2692 1
#> pred[NORDIL: CCB] 0.04 0.00 0.04 0.04 0.04 0.04 0.05 3396 3113 1
#> pred[NORDIL: Diuretic] 0.05 0.01 0.04 0.05 0.05 0.06 0.06 3168 2982 1
#> pred[NORDIL: Placebo] 0.04 0.00 0.03 0.04 0.04 0.04 0.05 2528 2796 1
#>
#> ------------------------------------------------------------------ Study: PEACE ----
#>
#> mean sd 2.5% 25% 50% 75% 97.5% Bulk_ESS Tail_ESS Rhat
#> pred[PEACE: Beta Blocker] 0.14 0.02 0.10 0.13 0.14 0.15 0.18 2722 2645 1
#> pred[PEACE: ACE Inhibitor] 0.10 0.01 0.08 0.09 0.10 0.11 0.13 4689 2814 1
#> pred[PEACE: ARB] 0.09 0.01 0.07 0.09 0.09 0.10 0.13 4733 2853 1
#> pred[PEACE: CCB] 0.12 0.02 0.09 0.11 0.12 0.13 0.15 3962 2102 1
#> pred[PEACE: Diuretic] 0.15 0.02 0.11 0.13 0.15 0.16 0.19 4935 2962 1
#> pred[PEACE: Placebo] 0.11 0.01 0.09 0.10 0.11 0.12 0.14 5109 2688 1
#>
#> ------------------------------------------------------------------ Study: SCOPE ----
#>
#> mean sd 2.5% 25% 50% 75% 97.5% Bulk_ESS Tail_ESS Rhat
#> pred[SCOPE: Beta Blocker] 0.06 0.01 0.05 0.06 0.06 0.07 0.09 3424 2888 1
#> pred[SCOPE: ACE Inhibitor] 0.05 0.01 0.03 0.04 0.05 0.05 0.06 5295 2823 1
#> pred[SCOPE: ARB] 0.04 0.01 0.03 0.04 0.04 0.05 0.06 5749 3175 1
#> pred[SCOPE: CCB] 0.06 0.01 0.04 0.05 0.05 0.06 0.07 4868 2709 1
#> pred[SCOPE: Diuretic] 0.07 0.01 0.05 0.06 0.07 0.08 0.09 5243 2620 1
#> pred[SCOPE: Placebo] 0.05 0.01 0.04 0.05 0.05 0.06 0.07 5835 2557 1
#>
#> ------------------------------------------------------------------- Study: SHEP ----
#>
#> mean sd 2.5% 25% 50% 75% 97.5% Bulk_ESS Tail_ESS Rhat
#> pred[SHEP: Beta Blocker] 0.09 0.01 0.06 0.08 0.09 0.09 0.11 3186 2674 1
#> pred[SHEP: ACE Inhibitor] 0.06 0.01 0.05 0.06 0.06 0.07 0.08 4693 2678 1
#> pred[SHEP: ARB] 0.06 0.01 0.04 0.05 0.06 0.06 0.08 4607 2675 1
#> pred[SHEP: CCB] 0.07 0.01 0.05 0.07 0.07 0.08 0.10 4501 2903 1
#> pred[SHEP: Diuretic] 0.09 0.01 0.07 0.08 0.09 0.10 0.12 4989 3001 1
#> pred[SHEP: Placebo] 0.07 0.01 0.05 0.06 0.07 0.08 0.09 5346 2818 1
#>
#> ----------------------------------------------------------------- Study: STOP-2 ----
#>
#> mean sd 2.5% 25% 50% 75% 97.5% Bulk_ESS Tail_ESS Rhat
#> pred[STOP-2: Beta Blocker] 0.05 0.00 0.05 0.05 0.05 0.06 0.06 4443 3221 1
#> pred[STOP-2: ACE Inhibitor] 0.04 0.00 0.03 0.04 0.04 0.04 0.05 3230 3131 1
#> pred[STOP-2: ARB] 0.04 0.00 0.03 0.03 0.04 0.04 0.05 3260 2961 1
#> pred[STOP-2: CCB] 0.05 0.00 0.04 0.04 0.05 0.05 0.05 4151 2922 1
#> pred[STOP-2: Diuretic] 0.06 0.01 0.05 0.05 0.06 0.06 0.07 3857 3132 1
#> pred[STOP-2: Placebo] 0.04 0.00 0.03 0.04 0.04 0.05 0.05 2904 2851 1
#>
#> ------------------------------------------------------------------ Study: VALUE ----
#>
#> mean sd 2.5% 25% 50% 75% 97.5% Bulk_ESS Tail_ESS Rhat
#> pred[VALUE: Beta Blocker] 0.20 0.02 0.15 0.18 0.19 0.21 0.25 3053 2187 1
#> pred[VALUE: ACE Inhibitor] 0.15 0.02 0.11 0.13 0.14 0.16 0.19 4654 2519 1
#> pred[VALUE: ARB] 0.14 0.02 0.10 0.13 0.14 0.14 0.17 4783 2673 1
#> pred[VALUE: CCB] 0.17 0.02 0.13 0.16 0.17 0.18 0.21 4538 2131 1
#> pred[VALUE: Diuretic] 0.21 0.03 0.16 0.19 0.21 0.22 0.27 4774 2679 1
#> pred[VALUE: Placebo] 0.16 0.02 0.12 0.15 0.16 0.17 0.21 4816 2530 1
plot(db_pred_RE_studies)
We can also produce treatment rankings, rank probabilities, and cumulative rank probabilities.
(db_ranks <- posterior_ranks(db_fit_RE))
#> mean sd 2.5% 25% 50% 75% 97.5% Bulk_ESS Tail_ESS Rhat
#> rank[Beta Blocker] 5.18 0.42 5 5 5 5 6 2241 NA 1
#> rank[ACE Inhibitor] 1.84 0.52 1 2 2 2 3 3781 3436 1
#> rank[ARB] 1.26 0.51 1 1 1 1 3 3592 2866 1
#> rank[CCB] 3.71 0.51 3 3 4 4 4 4111 2970 1
#> rank[Diuretic] 5.80 0.41 5 6 6 6 6 2597 NA 1
#> rank[Placebo] 3.20 0.59 2 3 3 4 4 3144 2813 1
plot(db_ranks)
(db_rankprobs <- posterior_rank_probs(db_fit_RE))
#> p_rank[1] p_rank[2] p_rank[3] p_rank[4] p_rank[5] p_rank[6]
#> d[Beta Blocker] 0.00 0.00 0.00 0.01 0.79 0.2
#> d[ACE Inhibitor] 0.22 0.72 0.06 0.00 0.00 0.0
#> d[ARB] 0.77 0.20 0.03 0.00 0.00 0.0
#> d[CCB] 0.00 0.02 0.26 0.71 0.01 0.0
#> d[Diuretic] 0.00 0.00 0.00 0.00 0.20 0.8
#> d[Placebo] 0.01 0.06 0.66 0.27 0.01 0.0
plot(db_rankprobs)
(db_cumrankprobs <- posterior_rank_probs(db_fit_RE, cumulative = TRUE))
#> p_rank[1] p_rank[2] p_rank[3] p_rank[4] p_rank[5] p_rank[6]
#> d[Beta Blocker] 0.00 0.00 0.00 0.01 0.8 1
#> d[ACE Inhibitor] 0.22 0.94 1.00 1.00 1.0 1
#> d[ARB] 0.77 0.97 1.00 1.00 1.0 1
#> d[CCB] 0.00 0.02 0.28 0.99 1.0 1
#> d[Diuretic] 0.00 0.00 0.00 0.00 0.2 1
#> d[Placebo] 0.01 0.07 0.73 0.99 1.0 1
plot(db_cumrankprobs)
The gain in efficiency here from using “Beta Blocker” as the network reference treatment instead of “Diuretic” is considerable - around 4-8 times, in terms of effective samples per second. The functions in this package will always attempt to choose a default network reference treatment that maximises computational efficiency and stability. If you have chosen an alternative network reference treatment and the model runs very slowly or has low effective sample size, this is a likely cause.↩︎