Back to main page.
Read data.
D <- readSheet("Strokeembolism")
Tidy up the data (do not show the code).
| study | treatment | responders | sampleSize |
|---|---|---|---|
| ARISTOTLE | Apixaban_5_mg | 212 | 9120 |
| ARISTOTLE | Warfarin | 265 | 9081 |
| ARISTOTLE-J | Apixaban_5_mg | 0 | 74 |
| ARISTOTLE-J | Warfarin | 3 | 74 |
| ENGAGE AF-TIMI | Edoxaban_30_mg | 253 | 7002 |
| ENGAGE AF-TIMI | Edoxaban_60_mg | 182 | 7012 |
| ENGAGE AF-TIMI | Warfarin | 232 | 7012 |
| J-ROCKET | Rivaroxaban_15_mg | 11 | 637 |
| J-ROCKET | Warfarin | 22 | 637 |
| Mao, 2014 | Rivaroxaban_20_mg | 5 | 177 |
| Mao, 2014 | Warfarin | 7 | 176 |
| PETRO | Dabigatran_150_mg | 0 | 166 |
| PETRO | Warfarin | 0 | 70 |
| RE-LY | Dabigatran_110_mg | 182 | 6015 |
| RE-LY | Dabigatran_150_mg | 134 | 6076 |
| RE-LY | Warfarin | 199 | 6022 |
| ROCKET-AF | Rivaroxaban_20_mg | 269 | 7081 |
| ROCKET-AF | Warfarin | 306 | 7090 |
| Yamashita, 2012 | Edoxaban_30_mg | 0 | 131 |
| Yamashita, 2012 | Edoxaban_60_mg | 0 | 131 |
| Yamashita, 2012 | Warfarin | 0 | 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 mtcStrokeOddsRatios.csv.
or <- combineResults()
write.csv(or, file="mtcStrokeOddsRatios.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.86 (0.65, 1.13) | 1.19 (0.88, 1.60) | 0.71 (0.55, 0.92) | 1.00 (0.76, 1.33) | 1.61 (0.77, 3.58) | 0.90 (0.70, 1.15) | 0.78 (0.65, 0.94) | |
| Dabigatran 110 mg vs | 1.16 (0.88, 1.54) | 1.38 (1.10, 1.74) | 0.83 (0.63, 1.10) | 1.17 (0.88, 1.56) | 1.88 (0.90, 4.15) | 1.04 (0.80, 1.36) | 0.91 (0.74, 1.12) | |
| Dabigatran 150 mg vs | 0.84 (0.63, 1.13) | 0.72 (0.57, 0.91) | 0.60 (0.45, 0.80) | 0.85 (0.63, 1.15) | 1.36 (0.64, 3.04) | 0.76 (0.57, 1.00) | 0.66 (0.53, 0.82) | |
| Edoxaban 30 mg vs | 1.40 (1.08, 1.82) | 1.20 (0.91, 1.58) | 1.66 (1.25, 2.22) | 1.41 (1.16, 1.71) | 2.26 (1.07, 4.97) | 1.26 (0.98, 1.61) | 1.10 (0.91, 1.31) | |
| Edoxaban 60 mg vs | 1.00 (0.75, 1.31) | 0.85 (0.64, 1.14) | 1.18 (0.87, 1.60) | 0.71 (0.58, 0.87) | 1.60 (0.77, 3.55) | 0.89 (0.69, 1.16) | 0.78 (0.64, 0.95) | |
| Rivaroxaban 15 mg vs | 0.62 (0.28, 1.30) | 0.53 (0.24, 1.11) | 0.74 (0.33, 1.55) | 0.44 (0.20, 0.94) | 0.62 (0.28, 1.30) | 0.56 (0.26, 1.18) | 0.49 (0.22, 1.00) | |
| Rivaroxaban 20 mg vs | 1.11 (0.87, 1.43) | 0.96 (0.74, 1.24) | 1.32 (1.00, 1.75) | 0.80 (0.62, 1.02) | 1.12 (0.86, 1.46) | 1.80 (0.85, 3.92) | 0.87 (0.74, 1.03) | |
| Warfarin vs | 1.28 (1.06, 1.54) | 1.10 (0.90, 1.34) | 1.51 (1.22, 1.89) | 0.91 (0.76, 1.09) | 1.28 (1.05, 1.56) | 2.06 (1.00, 4.45) | 1.15 (0.97, 1.35) |
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.24547 0.09417 0.0009417 0.0009817
## d.Warfarin.Dabigatran_110_mg -0.09258 0.10454 0.0010454 0.0011432
## d.Warfarin.Dabigatran_150_mg -0.41634 0.11376 0.0011376 0.0011835
## d.Warfarin.Edoxaban_30_mg 0.09173 0.09328 0.0009328 0.0009772
## d.Warfarin.Edoxaban_60_mg -0.25058 0.10196 0.0010196 0.0010359
## d.Warfarin.Rivaroxaban_15_mg -0.72846 0.38203 0.0038203 0.0041821
## d.Warfarin.Rivaroxaban_20_mg -0.13774 0.08547 0.0008547 0.0008783
##
## 2. Quantiles for each variable:
##
## 2.5% 25% 50% 75% 97.5%
## d.Warfarin.Apixaban_5_mg -0.42966 -0.30892 -0.24596 -0.18199 -0.062607
## d.Warfarin.Dabigatran_110_mg -0.29596 -0.16390 -0.09343 -0.02158 0.109568
## d.Warfarin.Dabigatran_150_mg -0.63882 -0.49445 -0.41475 -0.33817 -0.198707
## d.Warfarin.Edoxaban_30_mg -0.08906 0.02882 0.09128 0.15515 0.272006
## d.Warfarin.Edoxaban_60_mg -0.44744 -0.31889 -0.25071 -0.18252 -0.053125
## d.Warfarin.Rivaroxaban_15_mg -1.49310 -0.98088 -0.72102 -0.46652 -0.002756
## d.Warfarin.Rivaroxaban_20_mg -0.30240 -0.19526 -0.13817 -0.07970 0.029872
##
##
## $DIC
## Dbar pD DIC
## 18.03696 14.22995 32.26691
##
## 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 99.00698 92.40081 NA
## 2 Dabigatran_110_mg Dabigatran_150_mg NA NA NA
## 3 Dabigatran_110_mg Warfarin NA NA NA
## 4 Dabigatran_150_mg Warfarin 0.00000 0.00000 NA
## 5 Edoxaban_30_mg Edoxaban_60_mg 0.00000 0.00000 NA
## 6 Edoxaban_30_mg Warfarin 0.00000 0.00000 NA
## 7 Edoxaban_60_mg Warfarin 0.00000 0.00000 NA
## 8 Rivaroxaban_15_mg Warfarin NA NA NA
## 9 Rivaroxaban_20_mg Warfarin 0.00000 0.00000 NA
##
## Global I-squared:
## -------------------------
##
## i2.pair i2.cons
## 1 86.2879 0.9251037
plot(anohe)
## Analysis of heterogeneity -- convergence plots
## Unrelated Study Effects (USE) model:
## Unrelated Mean Effects (UME) model:
## Consistency model: