library(mada)
ballard_us <- data.frame(TP = c(13, 14, 500, 9), FN = c(20, 78, 193, 9), FP = c(47, 80, 101, 5), TN = c(543, 537, 3399, 49))

ballard_us$names <- c("Karl_2015", "Lee_2015", "Alexander_1992", "Moraes_2000") 
print(madad(ballard_us, level = 0.95, suppress = T), digits = 2)
## Descriptive summary of ballard_us with 4 primary studies.
## Confidence level for all calculations set to 95 %
## Using a continuity correction of 0.5 if applicable 
## 
## Diagnostic accuracies 
##                sens 2.5% 97.5% spec 2.5% 97.5%
## Karl_2015      0.39 0.25  0.56 0.92 0.90  0.94
## Lee_2015       0.15 0.09  0.24 0.87 0.84  0.89
## Alexander_1992 0.72 0.69  0.75 0.97 0.97  0.98
## Moraes_2000    0.50 0.29  0.71 0.91 0.80  0.96
## 
## Test for equality of sensitivities: 
## X-squared = 125.3775, df = 3, p-value = <2e-16
## Test for equality of specificities: 
## X-squared = 130.8758, df = 3, p-value = <2e-16
## 
## 
## Diagnostic OR and likelihood ratios 
##                  DOR  2.5%  97.5% posLR  2.5% 97.5% negLR 2.5% 97.5%
## Karl_2015       7.51  3.51  16.04  4.95  2.99  8.19  0.66 0.50  0.87
## Lee_2015        1.20  0.65   2.23  1.17  0.70  1.98  0.97 0.89  1.07
## Alexander_1992 87.19 67.33 112.89 25.00 20.52 30.47  0.29 0.25  0.32
## Moraes_2000     9.80  2.66  36.10  5.40  2.08 14.02  0.55 0.34  0.88
## 
## Correlation of sensitivities and false positive rates: 
##    rho  2.5 % 97.5 % 
##  -0.94  -1.00   0.18

Pooled Log positive likelihood ratio

forest(madauni(ballard_us, type = "posLR"))

Fitting the bivariate model of Reitsma et al. (2005)

fit <- reitsma(ballard_us)
## Warning in checkdata(freqdata): There are very few primary studies!
mcmc_sum <- SummaryPts(fit, n.iter = 10^7)
model_summary <- as.data.frame(summary(mcmc_sum))
print(model_summary)
##            Mean Median  2.5%  97.5%
## posLR     7.240  6.150 1.560 19.200
## negLR     0.633  0.633 0.343  0.921
## invnegLR  1.690  1.580 1.090  2.920
## DOR      14.400  9.720 1.700 55.700
plot(fit)