Back to main page.
Read data.
D <- readSheet("MI")
Tidy up the data (do not show the code).
| study | treatment | responders | sampleSize |
|---|---|---|---|
| ARISTOTLE | Apixaban_5_mg | 90 | 9120 |
| ARISTOTLE | Warfarin | 102 | 9081 |
| ARISTOTLE-J | Apixaban_5_mg | 0 | 74 |
| ARISTOTLE-J | Warfarin | 0 | 74 |
| ENGAGE AF-TIMI | Edoxaban_30_mg | 169 | 7034 |
| ENGAGE AF-TIMI | Edoxaban_60_mg | 133 | 7035 |
| ENGAGE AF-TIMI | Warfarin | 141 | 7036 |
| J-ROCKET | Rivaroxaban_15_mg | 3 | 637 |
| J-ROCKET | Warfarin | 1 | 637 |
| RE-LY | Dabigatran_110_mg | 86 | 6015 |
| RE-LY | Dabigatran_150_mg | 89 | 6076 |
| RE-LY | Warfarin | 63 | 6022 |
| ROCKET-AF | Rivaroxaban_20_mg | 100 | 7061 |
| ROCKET-AF | Warfarin | 126 | 7082 |
Run the model using fixed-effects.
M <- mtc.model(network, type="consistency", linearModel=effect)
plot(M)
results <- mtc.run(M, n.adapt=nAdapt, n.iter=nIter, thin=thin)
Direct and indirect odds ratios and 95% confidence bounds are stored in mtcMIOddsRatios.csv.
or <- combineResults()
write.csv(or, file="mtcMIOddsRatios.csv", row.names=FALSE)
print(xtable(or), type="html", include.rownames=FALSE)
| treatment | Apixaban 5 mg | Dabigatran 110 mg | Dabigatran 150 mg | Edoxaban 30 mg | Edoxaban 60 mg | Rivaroxaban 15 mg | Rivaroxaban 20 mg | Warfarin |
|---|---|---|---|---|---|---|---|---|
| Apixaban 5 mg vs | 0.64 (0.41, 0.98) | 0.62 (0.40, 0.96) | 0.73 (0.51, 1.04) | 0.93 (0.64, 1.36) | 0.23 (0.01, 2.06) | 1.11 (0.75, 1.64) | 0.88 (0.66, 1.17) | |
| Dabigatran 110 mg vs | 1.57 (1.02, 2.43) | 0.98 (0.72, 1.32) | 1.14 (0.77, 1.70) | 1.46 (0.97, 2.18) | 0.35 (0.01, 3.26) | 1.74 (1.13, 2.65) | 1.38 (0.99, 1.91) | |
| Dabigatran 150 mg vs | 1.60 (1.04, 2.50) | 1.02 (0.76, 1.39) | 1.17 (0.80, 1.74) | 1.49 (1.01, 2.23) | 0.36 (0.01, 3.37) | 1.78 (1.16, 2.72) | 1.41 (1.02, 1.96) | |
| Edoxaban 30 mg vs | 1.37 (0.96, 1.97) | 0.88 (0.59, 1.29) | 0.86 (0.58, 1.26) | 1.28 (1.02, 1.61) | 0.31 (0.01, 2.79) | 1.52 (1.07, 2.15) | 1.21 (0.97, 1.50) | |
| Edoxaban 60 mg vs | 1.07 (0.73, 1.55) | 0.68 (0.46, 1.03) | 0.67 (0.45, 0.99) | 0.78 (0.62, 0.98) | 0.24 (0.01, 2.21) | 1.19 (0.83, 1.70) | 0.94 (0.74, 1.20) | |
| Rivaroxaban 15 mg vs | 4.40 (0.48, 122.55) | 2.84 (0.31, 79.55) | 2.75 (0.30, 77.63) | 3.19 (0.36, 90.18) | 4.09 (0.45, 117.07) | 4.90 (0.54, 139.60) | 3.88 (0.44, 110.59) | |
| Rivaroxaban 20 mg vs | 0.90 (0.61, 1.34) | 0.58 (0.38, 0.89) | 0.56 (0.37, 0.86) | 0.66 (0.46, 0.93) | 0.84 (0.59, 1.21) | 0.20 (0.01, 1.84) | 0.79 (0.61, 1.04) | |
| Warfarin vs | 1.14 (0.85, 1.52) | 0.73 (0.52, 1.01) | 0.71 (0.51, 0.98) | 0.83 (0.66, 1.04) | 1.06 (0.84, 1.35) | 0.26 (0.01, 2.29) | 1.26 (0.96, 1.65) |
noac <- unique(D[treatment != "Warfarin", treatment])
for (i in 1:length(noac)) {
forest(relative.effect(results, noac[i], noac[1:length(noac) != i]))
}
summary(results)
## $measure
## [1] "Log Odds Ratio"
##
## $summaries
##
## Iterations = 5010:30000
## Thinning interval = 10
## Number of chains = 4
## Sample size per chain = 2500
##
## 1. Empirical mean and standard deviation for each variable,
## plus standard error of the mean:
##
## Mean SD Naive SE Time-series SE
## d.Warfarin.Apixaban_5_mg -0.1306 0.1465 0.001465 0.001535
## d.Warfarin.Dabigatran_110_mg 0.3194 0.1665 0.001665 0.001988
## d.Warfarin.Dabigatran_150_mg 0.3425 0.1655 0.001655 0.001716
## d.Warfarin.Edoxaban_30_mg 0.1865 0.1137 0.001137 0.001239
## d.Warfarin.Edoxaban_60_mg -0.0592 0.1213 0.001213 0.001287
## d.Warfarin.Rivaroxaban_15_mg 1.4945 1.3872 0.013872 0.014353
## d.Warfarin.Rivaroxaban_20_mg -0.2338 0.1364 0.001364 0.001364
##
## 2. Quantiles for each variable:
##
## 2.5% 25% 50% 75% 97.5%
## d.Warfarin.Apixaban_5_mg -0.416259 -0.2310 -0.12995 -0.03226 0.16041
## d.Warfarin.Dabigatran_110_mg -0.008269 0.2078 0.31933 0.43113 0.64456
## d.Warfarin.Dabigatran_150_mg 0.019647 0.2308 0.34168 0.45423 0.67073
## d.Warfarin.Edoxaban_30_mg -0.035503 0.1104 0.18694 0.26253 0.40875
## d.Warfarin.Edoxaban_60_mg -0.297093 -0.1411 -0.05936 0.02351 0.17869
## d.Warfarin.Rivaroxaban_15_mg -0.830454 0.5372 1.35482 2.28944 4.70582
## d.Warfarin.Rivaroxaban_20_mg -0.497875 -0.3235 -0.23442 -0.14449 0.03734
##
##
## $DIC
## Dbar pD DIC
## 12.29397 12.12866 24.42263
##
## attr(,"class")
## [1] "summary.mtc.result"
Sampler diagnostics.
gelman.plot(results)
gelman.diag(results)
## Potential scale reduction factors:
##
## Point est. Upper C.I.
## d.Warfarin.Apixaban_5_mg 1 1
## d.Warfarin.Dabigatran_110_mg 1 1
## d.Warfarin.Dabigatran_150_mg 1 1
## d.Warfarin.Edoxaban_30_mg 1 1
## d.Warfarin.Edoxaban_60_mg 1 1
## d.Warfarin.Rivaroxaban_15_mg 1 1
## d.Warfarin.Rivaroxaban_20_mg 1 1
##
## Multivariate psrf
##
## 1
plot(results)
autocorr.plot(results$samples)
Assess the degree of heterogeneity and inconsistency.
anohe <- mtc.anohe(network, n.adapt=nAdapt, n.iter=nIter, thin=thin)
summary(anohe)
## Analysis of heterogeneity
## =========================
##
## Per-comparison I-squared:
## -------------------------
##
## t1 t2 i2.pair i2.cons incons.p
## 1 Apixaban_5_mg Warfarin 0 0 NA
## 2 Dabigatran_110_mg Dabigatran_150_mg NA NA NA
## 3 Dabigatran_110_mg Warfarin NA NA NA
## 4 Dabigatran_150_mg Warfarin NA NA NA
## 5 Edoxaban_30_mg Edoxaban_60_mg NA NA NA
## 6 Edoxaban_30_mg Warfarin NA NA NA
## 7 Edoxaban_60_mg Warfarin NA NA NA
## 8 Rivaroxaban_15_mg Warfarin NA NA NA
## 9 Rivaroxaban_20_mg Warfarin NA NA NA
##
## Global I-squared:
## -------------------------
##
## i2.pair i2.cons
## 1 0 0
plot(anohe)
## Analysis of heterogeneity -- convergence plots
## Unrelated Study Effects (USE) model:
## Unrelated Mean Effects (UME) model:
## Consistency model: