Meta-Analyisis of univariate measures of diagnostic accuracy

The classic strategy to meta-analysis of diagnostic accuracy data is to pool a univariate measure of accuracy like the diagnostic odds ratio, the positive likelihood ratio or the negative likelihood ratio. For fixed effect estimation a Mantel-Haenszel estimator is implemented and for random effect estimation a DerSimonian-Laird estimator is available.

madauni(x, type = "DOR", method = "DSL", suppress = TRUE, ...)

any object that can be converted to a data frame with integer variables TP, FN, FP and TN, alternatively a matrix with column names including TP, FN, FP and TN.


character, what effect size should be pooled? Either "DOR", "posLR" or "negLR".


character, method of estimation. Either "MH" or "DSL".


logical, should warnings produced by the internal call to madad be suppressed?


further arguments to be passed on to madad, for example correction.control.


First note that the function madad is used to calculate effect measures. You can pass on arguments to this function via the ... arguments. This is especially useful for the correction.control and correction arguments, see the example.

The Mantel-Haenszel method performs fixed effect estimation of the effect sizes. For the DOR the variance of this estimator is calculated according to Robins et al. (1986) and for the likelihood ratios the variance is based on Greenland et al. (1985).

The DerSimonian-Laird method performs a random effects meta-analysis. For this \(\tau^2\), the variance of the log-transformed effect size (DOR, positive or negative likelihood ratio) is calculated by the DerSimonian and Laird (1986) method. The confidence interval for \(\tau^2\) is derived by inverting the Q-Test of Viechtbauer (2007).

Zwindermann and Bossuyt (2008) argue, that univariate summary points like the likelihood ratios should be derived from the bivariate model of Reitsma et al (2005). The function SummaryPts, using output of reitsma supports this approach.


An object of class madauni, for which some standard methods are available, see madauni-class


Performing univariate meta-analysis of diagnostic studies can not be recommended anymore now that bivariate methods are available, at least not if a reasonable number of primary studies is availabel. The package mada provides this functionality for exploratory purposes and for meta-analysis of a small number of studies. The prefered way is to use reitsma in conjunction with SummaryPts.

The default value of correction.control used madad (and hence in the calculation of the effect sizes for madauni) is "all", i.e. the continuity correction is added to all studies if any has a zero cell. This is a different default value than the metafor package uses. Set correction.control to "single" to arrive at the same values.


DerSimonian, R. and Laird, N. (1986). “Meta-analysis in clinical trials.” Controlled clinical trials, 7, 177--188.

Greenland, S. and Robins, J.M. (1985). “Estimation of a Common Effect Parameter from Sparse Follow-Up Data.” Biometrics, 41, 55--68.

Reitsma, J., Glas, A., Rutjes, A., Scholten, R., Bossuyt, P., & Zwinderman, A. (2005). “Bivariate analysis of sensitivity and specificity produces informative summary measures in diagnostic reviews.” Journal of Clinical Epidemiology, 58, 982--990.

Robins, J. and Greenland, S. and Breslow, N.E. (1986). “A general estimator for the variance of the Mantel-Haenszel odds ratio.” American Journal of Epidemiology, 124, 719--723.

Viechtbauer, W. (2007). “Confidence intervals for the amount of heterogeneity in meta-analysis.” Statistics in Medicine, 26, 37--52.

Zwinderman, A., & Bossuyt, P. (2008). “We should not pool diagnostic likelihood ratios in systematic reviews.”Statistics in Medicine, 27, 687--697.

See Also

madauni-class, reitsma, SummaryPts

  • madauni

## First example: DOR meta-analysis
AuditC.uni <- madauni(AuditC)

## Second example: sensitivity analysis
## Do continuity corrections make a difference?
AuditC.uni_low <- madauni(AuditC, correction = 0.1)
AuditC.uni_single <-  madauni(AuditC, 
          correction.control = "single") ## default is "all"
# }
Documentation reproduced from package mada, version 0.5.8, License: GPL-2

Community examples

Looks like there are no examples yet.