library(meta)
## Loading 'meta' package (version 4.8-4).
## Type 'help(meta)' for a brief overview.
data7 <- read.csv("data7.csv")
data7
## study Ee Ne Ec Nc
## 1 Samson 12 24 15 32
## 2 Luca 37 44 32 44
## 3 Ekel 136 150 120 162
## 4 Ramnujam 18 48 18 71
## 5 Kurt 127 120 77 142
## 6 Dammer 63 80 66 82
## 7 Morelli 34 20 32 34
## 8 Jimmy 13 72 16 64
## 9 Dekles 82 88 51 88
## 10 Subaina 22 50 28 37
## 11 Rafael 48 72 46 44
## 12 Monicca 56 100 91 120
## 13 Veronica 36 41 20 30
## 14 Ludwig 46 72 72 60
summary(data7$Ee/data7$Ne)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.1806 0.5150 0.7271 0.7475 0.8995 1.7000
summary(data7$Ec/data7$Nc)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.2500 0.5516 0.7340 0.6954 0.7932 1.2000
logOR <- with(data7[data7$study=="Dekles",],
log((Ee*(Nc-Ec)) / (Ec*(Ne-Ee))))
selogOR <- with(data7[data7$study=="Dekles",],
sqrt(1/Ee + 1/(Ne-Ee) + 1/Ec + 1/(Nc-Ec)))
round(exp(c(logOR,
logOR + c(-1,1) *
qnorm(1-0.05/2) * selogOR)), 4)
## [1] 9.9150 3.9092 25.1478
metabin(Ee, Ne, Ec, Nc, sm="OR", method="I",
data=data7, subset=study=="Dekles")
## OR 95%-CI z p-value
## 9.9150 [3.9092; 25.1478] 4.83 < 0.0001
##
## Details:
## - Inverse variance method
logRR <- with(data7[data7$study=="Dekles",],
log((Ee/Ne) / (Ec/Nc)))
selogRR <- with(data7[data7$study=="Dekles",],
sqrt(1/Ee + 1/Ec - 1/Ne - 1/Nc))
round(exp(c(logRR,
logRR + c(-1,1) *
qnorm(1-0.05/2) * selogRR)), 4)
## [1] 1.6078 1.3340 1.9379
metabin(Ee, Ne, Ec, Nc, sm="RR", method="I",
data=data7, subset=study=="Dekles")
## RR 95%-CI z p-value
## 1.6078 [1.3340; 1.9379] 4.98 < 0.0001
##
## Details:
## - Inverse variance method
metabin(Ee, Ne, Ec, Nc, sm="RD", method="I",
data=data7, subset=study=="Dekles")
## RD 95%-CI z p-value
## 0.3523 [0.2365; 0.4681] 5.96 < 0.0001
##
## Details:
## - Inverse variance method
ASD <- with(data7[data7$study=="Dekles",],
asin(sqrt(Ee/Ne)) - asin(sqrt(Ec/Nc)))
seASD <- with(data7[data7$study=="Dekles",],
sqrt(1/(4*Ne) + 1/(4*Nc)))
round(c(ASD, ASD + c(-1,1) * qnorm(1-0.05/2) * seASD), 4)
## [1] 0.4413 0.2936 0.5891
metabin(Ee, Ne, Ec, Nc, sm="ASD", method="I", data=data7, subset=study=="Dekles")
## ASD 95%-CI z p-value
## 0.4413 [0.2936; 0.5891] 5.85 < 0.0001
##
## Details:
## - Inverse variance method
data8 <- read.csv("data8.csv")
data8
## study Ee Ne Ec Nc
## 1 Poland 0 280 1 240
## 2 Jerman 5 242 7 188
## 3 Karl 6 280 5 332
## 4 ABCD 11 269 16 282
## 5 BRFL 10 1000 13 956
## 6 Andrew 8 1900 8 1900
## 7 Bigg 13 1421 13 1234
## 8 Roger 1 600 15 500
## 9 Krikka 6 1200 4 1256
## 10 Prifd 3 200 1 78
## 11 JJKL 14 1508 15 1400
summary(data8$Ee/data8$Ne)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.000000 0.004605 0.009284 0.012481 0.017831 0.040892
summary(data8$Ec/data8$Nc)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.003185 0.007373 0.012821 0.018024 0.022530 0.056738
logOR <- with(data8[data8$study=="Poland",],
log(((Ee+0.5)*(Nc-Ec+0.5)) /
((Ec+0.5)*(Ne-Ee+0.5))))
selogOR <- with(data8[data8$study=="Poland",],
sqrt(1/(Ee+0.5) + 1/(Ne-Ee+0.5) +
1/(Ec+0.5) + 1/(Nc-Ec+0.5)))
round(exp(c(logOR,
logOR + c(-1,1) * qnorm(1-0.05/2) * selogOR)), 4)
## [1] 0.2846 0.0115 7.0190
metabin(Ee, Ne, Ec, Nc, sm="OR", method="I",
data=data8, subset=study=="Poland")
## OR 95%-CI z p-value
## 0.2846 [0.0115; 7.0190] -0.77 0.4422
##
## Details:
## - Inverse variance method
## - Continuity correction of 0.5 in studies with zero cell frequencies
metabin(Ee, Ne, Ec, Nc, sm="OR", method="I",
data=data8, subset=study=="Poland",
incr=0.1)
## OR 95%-CI z p-value
## 0.0776 [0.0001; 50.3847] -0.77 0.4391
##
## Details:
## - Inverse variance method
## - Continuity correction of 0.1 in studies with zero cell frequencies
metabin(Ee, Ne, Ec, Nc, sm="OR", method="I",
data=data8, subset=study=="Poland",
incr="TACC")
## OR 95%-CI z p-value
## 0.3145 [0.0138; 7.1880] -0.72 0.4687
##
## Details:
## - Inverse variance method
## - Treatment arm continuity correction in studies with zero cell frequencies
metabin(Ee, Ne, Ec, Nc, sm="RR", method="I",
data=data8, subset=study=="Poland")
## RR 95%-CI z p-value
## 0.2858 [0.0117; 6.9832] -0.77 0.4424
##
## Details:
## - Inverse variance method
## - Continuity correction of 0.5 in studies with zero cell frequencies
metabin(Ee, Ne, Ec, Nc, sm="OR", method="P",
data=data7, subset=study=="Dekles")
## OR 95%-CI z p-value
## 6.6671 [3.3585; 13.2353] 5.42 < 0.0001
##
## Details:
## - Peto method
metabin(Ee, Ne, Ec, Nc, sm="OR", method="P",
data=data8, subset=study=="Poland")
## OR 95%-CI z p-value
## 0.1146 [0.0022; 5.8410] -1.08 0.2801
##
## Details:
## - Peto method
logOR <- with(data7,
log((Ee*(Nc-Ec)) / (Ec*(Ne-Ee))))
## Warning in log((Ee * (Nc - Ec))/(Ec * (Ne - Ee))): NaNs produced
varlogOR <- with(data7,
1/Ee + 1/(Ne-Ee) + 1/Ec + 1/(Nc-Ec))
weight <- 1/varlogOR
round(exp(weighted.mean(logOR, weight)), 4)
## [1] NaN
round(1/sum(weight), 4)
## [1] -0.0165
mb1 <- metabin(Ee, Ne, Ec, Nc, sm="OR", method="I",
data=data7, studlab=study)
## Warning in metabin(Ee, Ne, Ec, Nc, sm = "OR", method = "I", data = data7, :
## Studies with event.e > n.e get no weight in meta-analysis.
## Warning in metabin(Ee, Ne, Ec, Nc, sm = "OR", method = "I", data = data7, :
## Studies with event.c > n.c get no weight in meta-analysis.
round(c(exp(mb1$TE.fixed), mb1$seTE.fixed^2), 4)
## [1] 1.2188 0.0174
print(summary(mb1), digits=2)
## Number of studies combined: k = 10
##
## OR 95%-CI z p-value
## Fixed effect model 1.22 [0.94; 1.58] 1.50 0.1339
## Random effects model 1.37 [0.69; 2.74] 0.90 0.3691
##
## Quantifying heterogeneity:
## tau^2 = 1.0398; H = 2.61 [1.99; 3.42]; I^2 = 85.3% [74.8%; 91.5%]
##
## Test of heterogeneity:
## Q d.f. p-value
## 61.43 9 < 0.0001
##
## Details on meta-analytical method:
## - Inverse variance method
## - DerSimonian-Laird estimator for tau^2
forest(mb1, comb.random=FALSE, hetstat=FALSE)

logOR <- with(data8,
log((Ee*(Nc-Ec)) / (Ec*(Ne-Ee))))
varlogOR <- with(data8,
1/Ee + 1/(Ne-Ee) + 1/Ec + 1/(Nc-Ec))
weight <- 1/varlogOR
weight[data8$study=="Poland"]
## [1] 0
mb2 <- metabin(Ee, Ne, Ec, Nc, sm="OR", method="I",
data=data8, studlab=study)
print(summary(mb2), digits=2)
## Number of studies combined: k = 11
##
## OR 95%-CI z p-value
## Fixed effect model 0.8 [0.59; 1.10] -1.37 0.1712
## Random effects model 0.8 [0.59; 1.10] -1.36 0.1744
##
## Quantifying heterogeneity:
## tau^2 = 0.0039; H = 1.01 [1.00; 1.60]; I^2 = 1.3% [0.0%; 60.7%]
##
## Test of heterogeneity:
## Q d.f. p-value
## 10.13 10 0.4290
##
## Details on meta-analytical method:
## - Inverse variance method
## - DerSimonian-Laird estimator for tau^2
## - Continuity correction of 0.5 in studies with zero cell frequencies
as.data.frame(mb2)[,c("studlab", "incr.e", "incr.c")]
## studlab incr.e incr.c
## 1 Poland 0.5 0.5
## 2 Jerman 0.0 0.0
## 3 Karl 0.0 0.0
## 4 ABCD 0.0 0.0
## 5 BRFL 0.0 0.0
## 6 Andrew 0.0 0.0
## 7 Bigg 0.0 0.0
## 8 Roger 0.0 0.0
## 9 Krikka 0.0 0.0
## 10 Prifd 0.0 0.0
## 11 JJKL 0.0 0.0
mb1.mh <- metabin(Ee, Ne, Ec, Nc, sm="OR",
data=data7, studlab=study)
## Warning in metabin(Ee, Ne, Ec, Nc, sm = "OR", data = data7, studlab =
## study): Studies with event.e > n.e get no weight in meta-analysis.
## Warning in metabin(Ee, Ne, Ec, Nc, sm = "OR", data = data7, studlab =
## study): Studies with event.c > n.c get no weight in meta-analysis.
print(summary(mb1.mh), digits=2)
## Number of studies combined: k = 10
##
## OR 95%-CI z p-value
## Fixed effect model 1.30 [1.02; 1.65] 2.15 0.0314
## Random effects model 1.37 [0.69; 2.74] 0.90 0.3698
##
## Quantifying heterogeneity:
## tau^2 = 1.0444; H = 2.62 [2.00; 3.43]; I^2 = 85.4% [74.9%; 91.5%]
##
## Test of heterogeneity:
## Q d.f. p-value
## 61.66 9 < 0.0001
##
## Details on meta-analytical method:
## - Mantel-Haenszel method
## - DerSimonian-Laird estimator for tau^2
forest(mb1.mh, comb.random=FALSE, hetstat=FALSE,
text.fixed="MH estimate")

mb2.mh <- metabin(Ee, Ne, Ec, Nc, sm="OR", method="MH",
data=data8, studlab=study)
print(summary(mb2.mh), digits=2)
## Number of studies combined: k = 11
##
## OR 95%-CI z p-value
## Fixed effect model 0.73 [0.54; 0.98] -2.08 0.0373
## Random effects model 0.80 [0.58; 1.11] -1.33 0.1834
##
## Quantifying heterogeneity:
## tau^2 = 0.0155; H = 1.03 [1.00; 1.63]; I^2 = 5.0% [0.0%; 62.2%]
##
## Test of heterogeneity:
## Q d.f. p-value
## 10.53 10 0.3954
##
## Details on meta-analytical method:
## - Mantel-Haenszel method
## - DerSimonian-Laird estimator for tau^2
## - Continuity correction of 0.5 in studies with zero cell frequencies
mb1.peto <- metabin(Ee, Ne, Ec, Nc, sm="OR", method="P",
data=data7, studlab=study)
## Warning in metabin(Ee, Ne, Ec, Nc, sm = "OR", method = "P", data = data7, :
## Studies with event.e > n.e get no weight in meta-analysis.
## Warning in metabin(Ee, Ne, Ec, Nc, sm = "OR", method = "P", data = data7, :
## Studies with event.c > n.c get no weight in meta-analysis.
print(summary(mb1.peto), digits=2)
## Number of studies combined: k = 10
##
## OR 95%-CI z p-value
## Fixed effect model 1.31 [1.03; 1.67] 2.21 0.0274
## Random effects model 1.33 [0.68; 2.61] 0.83 0.4043
##
## Quantifying heterogeneity:
## tau^2 = 0.9982; H = 2.72 [2.09; 3.54]; I^2 = 86.5% [77.1%; 92.0%]
##
## Test of heterogeneity:
## Q d.f. p-value
## 66.63 9 < 0.0001
##
## Details on meta-analytical method:
## - Peto method
## - DerSimonian-Laird estimator for tau^2
mb2.peto <- metabin(Ee, Ne, Ec, Nc, sm="OR", method="Peto",
data=data8, studlab=study)
print(summary(mb2.peto), digits=2)
## Number of studies combined: k = 11
##
## OR 95%-CI z p-value
## Fixed effect model 0.73 [0.54; 0.98] -2.10 0.0359
## Random effects model 0.72 [0.49; 1.07] -1.62 0.1049
##
## Quantifying heterogeneity:
## tau^2 = 0.1472; H = 1.25 [1.00; 1.78]; I^2 = 35.6% [0.0%; 68.3%]
##
## Test of heterogeneity:
## Q d.f. p-value
## 15.52 10 0.1141
##
## Details on meta-analytical method:
## - Peto method
## - DerSimonian-Laird estimator for tau^2
print(summary(mb1), digits=2)
## Number of studies combined: k = 10
##
## OR 95%-CI z p-value
## Fixed effect model 1.22 [0.94; 1.58] 1.50 0.1339
## Random effects model 1.37 [0.69; 2.74] 0.90 0.3691
##
## Quantifying heterogeneity:
## tau^2 = 1.0398; H = 2.61 [1.99; 3.42]; I^2 = 85.3% [74.8%; 91.5%]
##
## Test of heterogeneity:
## Q d.f. p-value
## 61.43 9 < 0.0001
##
## Details on meta-analytical method:
## - Inverse variance method
## - DerSimonian-Laird estimator for tau^2
restmp1 <- rbind(c(exp(mb1$TE.fixed), exp(mb1$lower.fixed), exp(mb1$upper.fixed),
exp(mb1$TE.random), exp(mb1$lower.random), exp(mb1$upper.random),
mb1$tau^2),
c(exp(mb1.mh$TE.fixed), exp(mb1.mh$lower.fixed), exp(mb1.mh$upper.fixed),
exp(mb1.mh$TE.random), exp(mb1.mh$lower.random), exp(mb1.mh$upper.random),
mb1.mh$tau^2),
c(exp(mb1.peto$TE.fixed), exp(mb1.peto$lower.fixed), exp(mb1.peto$upper.fixed),
exp(mb1.peto$TE.random), exp(mb1.peto$lower.random), exp(mb1.peto$upper.random),
mb1.peto$tau^2)
)
restmp1 <- as.data.frame(restmp1)
restmp1[,1:6] <- round(restmp1[,1:6], 2)
restmp1[,7] <- round(restmp1[,7], 4)
names(restmp1) <- c("OR (fixed)", "lower", "upper", "OR (random)", "lower", "upper", "tau^2")
row.names(restmp1) <- c("IV", "MH", "Peto")
restmp2 <- rbind(c(exp(mb2$TE.fixed), exp(mb2$lower.fixed), exp(mb2$upper.fixed),
exp(mb2$TE.random), exp(mb2$lower.random), exp(mb2$upper.random),
mb2$tau^2),
c(exp(mb2.mh$TE.fixed), exp(mb2.mh$lower.fixed), exp(mb2.mh$upper.fixed),
exp(mb2.mh$TE.random), exp(mb2.mh$lower.random), exp(mb2.mh$upper.random),
mb2.mh$tau^2),
c(exp(mb2.peto$TE.fixed), exp(mb2.peto$lower.fixed), exp(mb2.peto$upper.fixed),
exp(mb2.peto$TE.random), exp(mb2.peto$lower.random), exp(mb2.peto$upper.random),
mb2.peto$tau^2)
)
restmp2 <- as.data.frame(restmp2)
restmp2[,1:6] <- round(restmp2[,1:6], 2)
restmp2[,7] <- round(restmp2[,7], 4)
names(restmp2) <- c("OR (fixed)", "lower", "upper", "OR (random)", "lower", "upper", "tau^2")
row.names(restmp2) <- c("IV", "MH", "Peto")
restmp1
## OR (fixed) lower upper OR (random) lower upper tau^2
## IV 1.22 0.94 1.58 1.37 0.69 2.74 1.0398
## MH 1.30 1.02 1.65 1.37 0.69 2.74 1.0444
## Peto 1.31 1.03 1.67 1.33 0.68 2.61 0.9982
restmp2
## OR (fixed) lower upper OR (random) lower upper tau^2
## IV 0.80 0.59 1.10 0.80 0.59 1.10 0.0039
## MH 0.73 0.54 0.98 0.80 0.58 1.11 0.0155
## Peto 0.73 0.54 0.98 0.72 0.49 1.07 0.1472
data9 <- read.csv("data9.csv")
data9
## study Ee Ne Ec Nc blind
## 1 Shay 1 12 5 12 Blinded
## 2 Michael 25 60 37 61 Blinded
## 3 Drew 21 50 21 55 Blinded
## 4 Sebastian 16 36 15 35 No
## 5 Taylor 12 38 32 47 No
## 6 Reign 8 21 12 21 No
## 7 Xavier 5 25 15 22 No
## 8 Arroyo 7 19 9 15 No
## 9 Shane 6 32 13 37 No
## 10 Frost 8 28 21 23 No
summary(data9$Ee/data9$Ne)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.08333 0.22143 0.34211 0.31028 0.40774 0.44444
summary(data9$Ec/data9$Nc)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.3514 0.4196 0.5857 0.5632 0.6623 0.9130
mb3 <- metabin(Ee, Ne, Ec, Nc, sm="RR", method="I",
data=data9, studlab=study)
print(summary(mb3), digits=2)
## Number of studies combined: k = 10
##
## RR 95%-CI z p-value
## Fixed effect model 0.64 [0.53; 0.76] -4.83 < 0.0001
## Random effects model 0.59 [0.44; 0.80] -3.44 0.0006
##
## Quantifying heterogeneity:
## tau^2 = 0.1162; H = 1.51 [1.06; 2.14]; I^2 = 55.9% [10.3%; 78.3%]
##
## Test of heterogeneity:
## Q d.f. p-value
## 20.39 9 0.0157
##
## Details on meta-analytical method:
## - Inverse variance method
## - DerSimonian-Laird estimator for tau^2
mb3s <- update(mb3, byvar=blind, print.byvar=FALSE)
print(summary(mb3s), digits=2)
## Number of studies combined: k = 10
##
## RR 95%-CI z p-value
## Fixed effect model 0.64 [0.53; 0.76] -4.83 < 0.0001
## Random effects model 0.59 [0.44; 0.80] -3.44 0.0006
##
## Quantifying heterogeneity:
## tau^2 = 0.1162; H = 1.51 [1.06; 2.14]; I^2 = 55.9% [10.3%; 78.3%]
##
## Test of heterogeneity:
## Q d.f. p-value
## 20.39 9 0.0157
##
## Results for subgroups (fixed effect model):
## k RR 95%-CI Q tau^2 I^2
## Blinded 3 0.80 [0.60; 1.06] 4.32 0.099 53.7%
## No 7 0.54 [0.43; 0.69] 11.95 0.1067 49.8%
##
## Test for subgroup differences (fixed effect model):
## Q d.f. p-value
## Between groups 4.12 1 0.0425
## Within groups 16.27 8 0.0387
##
## Results for subgroups (random effects model):
## k RR 95%-CI Q tau^2 I^2
## Blinded 3 0.78 [0.47; 1.30] 4.32 0.099 53.7%
## No 7 0.53 [0.37; 0.75] 11.95 0.1067 49.8%
##
## Test for subgroup differences (random effects model):
## Q d.f. p-value
## Between groups 1.54 1 0.2140
##
## Details on meta-analytical method:
## - Inverse variance method
## - DerSimonian-Laird estimator for tau^2