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.

1 |

`x` |
any object that can be converted to a data frame with integer variables |

`type` |
character, what effect size should be pooled? Either |

`method` |
character, method of estimation. Either |

`suppress` |
logical, should warnings produced by the internal call to |

`...` |
further arguments to be passed on to |

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.

Philipp Doebler <philipp.doebler@googlemail.com>

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.

`madauni-class`

, `reitsma`

, `SummaryPts`

1 2 3 4 5 6 7 8 9 10 11 12 13 14 | ```
data(AuditC)
## First example: DOR meta-analysis
AuditC.uni <- madauni(AuditC)
summary(AuditC.uni)
## 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"
confint(AuditC.uni)
confint(AuditC.uni_low)
confint(AuditC.uni_single)
``` |

Questions? Problems? Suggestions? Tweet to @rdrrHQ or email at ian@mutexlabs.com.

All documentation is copyright its authors; we didn't write any of that.