Descriptive statistics for meta-analysis of diagnostic accuracy

Share:

Description

Given the frequencies of true positives, false negative, false positives and true negatives from primary diagnostic studies madad calculates various summary statistics. Apart from sensitivities, specificities and false positive rates the function also calculates the diagnostic odds ratio (DOR) and the positve and negative likelihood ratios, together with their respective confidence intervals. Also two hypothesis tests are calculated: one testing the equality of the sensitivities and the same for the false positive rates.

Usage

1
2
3
4
5
6
madad(x = NULL, TP, FN, FP, TN, level = 0.95, correction = 0.5, 
  correction.control = "all", method = "wilson", yates = TRUE, 
  suppress = TRUE, ...)

## S3 method for class 'madad'
print(x, digits = 3, ...)

Arguments

x

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.

TP

vector of integers, ingored if X is not NULL.

FN

vector of integers, ingored if X is not NULL.

FP

vector of integers, ingored if X is not NULL.

TN

vector of integers, ingored if X is not NULL.

correction

numeric, continuity correction applied to zero cells.

correction.control

character, if set to "all" (the default) the continuity correction is added to the whole data if only one cell in one study is zero. If set to "single" the correction is only applied to rows of the data which have a zero.

level

numeric, confidence level for the calculations of confidence intervals.

method

character, method used to calculate the confidence intervals for sensitivities, specificities and false positive rates. One of "wald", "wilson", "agresti-coull", "jeffreys", "modified wilson", "modified jeffreys", "clopper-pearson", "arcsine", "logit", "witting"

yates

logical, should a Yates correction be used for testing the equality of sensitivities and specificities?

digits

integer, to what decimal place is the output to be rounded?

suppress

logical, suppress the warning that is generated by prop.test when Chi-square approximation may be incorrect.

...

further arguments to be passed on the other funtions (currently none).

Details

All calculations are performed using the continuity corrected cell counts, so if there are zero cells, the sensitivities and specificities not equal to 1. This can be avoided by setting correction.control to "none".

The test for the equality of sensitivities and its counterpart for the specificities is based on prop.test. This function will occasionally output warnings.

Value

An object of class madad which is essentially a list with the following components:

sens

A list of two components, sens (the sensitivities) and sens.ci the confidence intervals (a matrix with 2 columns).

spec

A list of two components, spec (the specificities) and spec.ci the confidence intervals (a matrix with 2 columns).

fpr

A list of two components, fpr (the false positive rates) and fpr.ci the confidence intervals (a matrix with 2 columns).

sens.htest

An object of class htest.

spec.htest

An object of class htest.

DOR

A list of two components, DOR the diagnostic odds ratios and DOR.ci the confidence intervals (a matrix with 2 columns).

posLR

A list of two components, posLR the positive likelihood ratios and posLR.ci the confidence intervals (a matrix with 2 columns).

negLR

A list of two components, negLR the negative likelihood ratios and negLR.ci the confidence intervals (a matrix with 2 columns).

cor_sens_fpr

numeric, the correlation of the sensitivities and false-positive rates.

level

numeric

method

character

names

character vector, if the main argument of madad is a data frame with a variable names these names are stored here.

nobs

integer, number of primary studies.

data

data frame, with columns TP, FN, FP and TN.

data.name

character, name of the main argument.

correction

numeric

correction.control

character

Author(s)

Philipp Doebler <philipp.doebler@googlemail.com>

See Also

madauni

Examples

1
2
3
data(AuditC)
AuditC.d <- madad(AuditC)
print(AuditC.d, digits = 2) #round everything to 2 digits