Stata The Stata listserver
[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

Re: st: Meta analysis of diagnostic test?

From   Roger Newson <>
Subject   Re: st: Meta analysis of diagnostic test?
Date   Sun, 01 Dec 2002 16:20:34 +0000

At 13:32 30/11/02 +0100, Jannik Helweg-Larsen wrote:
I'm trying to get some sort of conclusion from more than 15 very
heterogenous PCR diagnostic studies.

Considered to do some sort of meta analysis- but I've been unable (by
findit) to locate any specific Stata programs for such analysis.

Any suggestions or references?. Would summary ROC be useful and has anybody
written ado for these?
Typing -findit meta- reveals a large number of Stata programs for meta-analysis in general, including Jonathan Sterne's -metacum- for cumulative meta-analysis, which takes, as input, variables containing the estimates and standard errors of the parameter of interest for each study, and does a meta-analysis. The parameter of interest might be a log odds ratio, but might equally well be a ROC area, or even a difference between 2 ROC areas. Jannik's problem therefore seems to me to be how to calculate the ROC areas (or differences) and their standard errors for input to -metacum- or another meta-analysis program. (Correct me if I'm wrong.)

The official Stata commands -roctab-, -rocfit-, -rocplot-, -roccomp- and -rocgold- carry out ROC analyses, computing estimates and their standard errors, which are output to the log and to the returned results -r(area)- and -r(se)-. These commands are documented in -[R] roc-. An alternative way of calculating ROC areas and their standard errors is my package -somersd-, downloadable from SSC (type -ssc desc somersd- to find out about the latest version). If X is a quantitative test result and Y is a binary variable indicating a disease (1 for diseased, 0 for non-diseased), then Somers' D is related to the ROC area by the formula

D(X|Y) = 2*A(X,Y) - 1

and therefore

A(X,Y)= (D(X|Y)+1)/2
SE(A(X,Y)) = SE(D(X|Y))/2

where D(X|Y) is the Somers' D of X with respect to Y, A(X,Y) is the ROC area for X as a predictor of Y, and SE(.) denotes standard error. A possible advantage of using -somersd- rather than the official Stata -roc- programs is that -somersd- can be used with -lincom- to calculate standard errors and 95% CIs for differences between Somers' D values and therefore for differences between ROC areas, whereas -roccomp- only calculates a chi-squared statistic for the hypothesis that that difference is zero. For instance, if W and X are 2 quantitative tests for the disease indicated by Y, we might type

somersd Y W X
lincom (W-X)/2

and calculate CIs for the 2 Somers' D parameters and for the difference between the 2 ROC areas.

The relationship between Somers' D and the ROC area is discussed in a paper of mine which appeared in The Stata Journal earlier this year (Newson, 2002), and demonstrates the calculation of CIs for Somers' D and for the difference between 2 ROC curves..

I hope this helps



Newson R. Parameters behind "nonparametric" statistics: Kendall's tau, Somers' D and median differences. The Stata Journal 2(1): 45-64

Roger Newson
Lecturer in Medical Statistics
Department of Public Health Sciences
King's College London
5th Floor, Capital House
42 Weston Street
London SE1 3QD
United Kingdom

Tel: 020 7848 6648 International +44 20 7848 6648
Fax: 020 7848 6620 International +44 20 7848 6620
or 020 7848 6605 International +44 20 7848 6605

Opinions expressed are those of the author, not the institution.

* For searches and help try:

© Copyright 1996–2017 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index