Use the Zwindermann & Bossuyt (2008) MCMC procedure to generate summary points (positive and negative likelihood ratio, diagnostic odds ratio) for the Reitsma et al. (2005) bivariate model

Description

Zwindermann & Bossuyt (2008) argue that likelihood ratios should not be pooled by univariate meta-analysis. They propose a sampling based approach that uses the parameters of a fit to the bivariate model (implemented in reitsma) to generate samples for observed sensitivities and false positive rates. From these samples the quantities of interest (and their confidence intervals) are estimated.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
SummaryPts(object, ...)
## Default S3 method:
SummaryPts(object, mu,Sigma,alphasens = 1, alphafpr = 1,
                           n.iter = 10^6, FUN, ...)
## S3 method for class 'reitsma'
SummaryPts(object, n.iter = 10^6, FUN = NULL, ...)
## S3 method for class 'SummaryPts'
print(x, ...)
## S3 method for class 'SummaryPts'
summary(object, level = 0.95, digits = 3, ...)

Arguments

object

an object for which a method exists

x

An object of class SummaryPts

mu

numeric of length 2, expected to be the mean parameter of a bivariate model

Sigma

2x2 variance covariance matrix, expected to be the matrix representing the standard error of mu and the covariance of these two estimates

alphasens

numeric, alpha parameter for the sensitivities. Amounts to logit transformation if set to 1 (the default). See reitsma.

alphafpr

numeric, alpha parameter for the false positive rates. Amounts to logit transformation if set to 1 (the default). See reitsma.

n.iter

number of samples

FUN

A list of functions with 2 arguments (sens and fpr); if set to NULL in SummaryPts.reitsma, the positive, negative and inverse negative likelihood ratios are calculated and also the diagnostic odds ratio (DOR). See the example on how to supply other functions.

level

numeric, confidence level for confidence intervals

digits

number of significant digits to display

...

arguments to be passed on to other functions, currently ignored

Details

Samples are generated from a bivariate normal using rmvnorm. Note that the FUN argument

Value

An object of the class SummaryPts for which print and summary methods are available.

Author(s)

Philipp Doebler <philipp.doebler@googlemail.com>

References

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.

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

See Also

reitsma, talpha

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
data(Dementia)
(fit <- reitsma(Dementia))
mcmc_sum <- SummaryPts(fit, n.iter = 10^3)
## n.iter should be larger in applications!
mcmc_sum #just the means
summary(mcmc_sum) # 95% CIs by default
summary(mcmc_sum, level = 0.80, digits = 5) ## more digits, smaller CIs

## Supplying other functions

# Example 1: theta parameter of proportional hazards model 
# see "phm" in mada's documentation for details on theta 
theta <- function(sens,fpr){log(sens) / log(fpr)}
theta_sum <- SummaryPts(fit, FUN = list(theta = theta), n.iter = 10^3)
## n.iter should be larger in applications!
summary(theta_sum)
# compare with phm:
summary(phm(Dementia)) # the two estimators almost agree in this example

# Example 2: Youden index
Youden <- function(sens, fpr){sens - fpr}
Youden_sum <- SummaryPts(fit, FUN = list(Youden = Youden), , n.iter = 10^3)
## n.iter should be larger in applications!
summary(Youden_sum)