Back to main page.
Read data.
D <- readSheet("Mortality")
Tidy up the data (do not show the code).
| study | treatment | responders | sampleSize |
|---|---|---|---|
| ARISTOTLE | Apixaban_5_mg | 603 | 9120 |
| ARISTOTLE | Warfarin | 669 | 9081 |
| ARISTOTLE-J | Apixaban_5_mg | 0 | 74 |
| ARISTOTLE-J | Warfarin | 0 | 74 |
| ENGAGE AF-TIMI | Edoxaban_30_mg | 737 | 7034 |
| ENGAGE AF-TIMI | Edoxaban_60_mg | 773 | 7035 |
| ENGAGE AF-TIMI | Warfarin | 839 | 7036 |
| J-ROCKET | Rivaroxaban_15_mg | 7 | 637 |
| J-ROCKET | Warfarin | 5 | 637 |
| RE-LY | Dabigatran_110_mg | 446 | 6015 |
| RE-LY | Dabigatran_150_mg | 438 | 6076 |
| RE-LY | Warfarin | 487 | 6022 |
| ROCKET-AF | Rivaroxaban_20_mg | 208 | 7061 |
| ROCKET-AF | Warfarin | 250 | 7062 |
| Yamashita, 2012 | Edoxaban_30_mg | 0 | 131 |
| Yamashita, 2012 | Edoxaban_60_mg | 1 | 131 |
| Yamashita, 2012 | Warfarin | 1 | 129 |
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 mtcMortalityOddsRatios.csv.
or <- combineResults()
write.csv(or, file="mtcMortalityOddsRatios.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.98 (0.82, 1.17) | 1.01 (0.85, 1.20) | 1.03 (0.88, 1.21) | 0.98 (0.83, 1.14) | 0.62 (0.18, 2.01) | 1.08 (0.87, 1.34) | 0.89 (0.79, 1.00) | |
| Dabigatran 110 mg vs | 1.02 (0.86, 1.22) | 1.03 (0.90, 1.18) | 1.05 (0.89, 1.25) | 1.00 (0.84, 1.18) | 0.63 (0.18, 2.08) | 1.10 (0.87, 1.39) | 0.91 (0.80, 1.04) | |
| Dabigatran 150 mg vs | 0.99 (0.83, 1.18) | 0.97 (0.85, 1.11) | 1.02 (0.86, 1.21) | 0.97 (0.82, 1.15) | 0.62 (0.17, 2.01) | 1.07 (0.85, 1.35) | 0.88 (0.77, 1.01) | |
| Edoxaban 30 mg vs | 0.97 (0.83, 1.14) | 0.95 (0.80, 1.12) | 0.98 (0.83, 1.16) | 0.95 (0.85, 1.06) | 0.60 (0.17, 1.97) | 1.05 (0.84, 1.30) | 0.86 (0.78, 0.96) | |
| Edoxaban 60 mg vs | 1.02 (0.88, 1.20) | 1.00 (0.84, 1.19) | 1.03 (0.87, 1.22) | 1.06 (0.95, 1.18) | 0.64 (0.18, 2.06) | 1.10 (0.89, 1.37) | 0.91 (0.82, 1.01) | |
| Rivaroxaban 15 mg vs | 1.61 (0.50, 5.69) | 1.58 (0.48, 5.64) | 1.62 (0.50, 5.75) | 1.66 (0.51, 5.88) | 1.57 (0.49, 5.58) | 1.73 (0.52, 6.21) | 1.43 (0.44, 5.07) | |
| Rivaroxaban 20 mg vs | 0.93 (0.75, 1.16) | 0.91 (0.72, 1.14) | 0.94 (0.74, 1.18) | 0.96 (0.77, 1.19) | 0.91 (0.73, 1.12) | 0.58 (0.16, 1.90) | 0.83 (0.69, 1.00) | |
| Warfarin vs | 1.12 (1.00, 1.26) | 1.10 (0.96, 1.26) | 1.13 (0.99, 1.30) | 1.16 (1.04, 1.29) | 1.10 (0.99, 1.22) | 0.70 (0.20, 2.26) | 1.21 (1.00, 1.46) |
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.11624 0.05847 0.0005847 0.0005987
## d.Warfarin.Dabigatran_110_mg -0.09461 0.06795 0.0006795 0.0007573
## d.Warfarin.Dabigatran_150_mg -0.12557 0.06852 0.0006852 0.0006751
## d.Warfarin.Edoxaban_30_mg -0.14707 0.05323 0.0005323 0.0006062
## d.Warfarin.Edoxaban_60_mg -0.09213 0.05294 0.0005294 0.0005313
## d.Warfarin.Rivaroxaban_15_mg 0.36889 0.61858 0.0061858 0.0062678
## d.Warfarin.Rivaroxaban_20_mg -0.19007 0.09645 0.0009645 0.0009920
##
## 2. Quantiles for each variable:
##
## 2.5% 25% 50% 75% 97.5%
## d.Warfarin.Apixaban_5_mg -0.2296 -0.15494 -0.11644 -0.07654 -0.001855
## d.Warfarin.Dabigatran_110_mg -0.2286 -0.14116 -0.09423 -0.04873 0.036934
## d.Warfarin.Dabigatran_150_mg -0.2590 -0.17157 -0.12615 -0.07944 0.008336
## d.Warfarin.Edoxaban_30_mg -0.2511 -0.18312 -0.14708 -0.11150 -0.042363
## d.Warfarin.Edoxaban_60_mg -0.1949 -0.12774 -0.09230 -0.05635 0.012399
## d.Warfarin.Rivaroxaban_15_mg -0.8165 -0.03943 0.35947 0.76733 1.623675
## d.Warfarin.Rivaroxaban_20_mg -0.3760 -0.25527 -0.19058 -0.12383 -0.003099
##
##
## $DIC
## Dbar pD DIC
## 14.79001 13.15944 27.94945
##
## 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.00000 0.00000 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 83.76690 37.19692 NA
## 6 Edoxaban_30_mg Warfarin 80.09397 18.12514 NA
## 7 Edoxaban_60_mg Warfarin 0.00000 0.00000 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: