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

Re: st: bivariate random effects meta-analysis of diagnostic test data

From   Joseph Coveney <>
To   Statalist <>
Subject   Re: st: bivariate random effects meta-analysis of diagnostic test data
Date   Wed, 14 Apr 2004 14:55:11 +0900

Ben Dwamena wrote:

I am interested in using bivariate random effects regression to
meta-analyze simultaneously sensitivity and specificity ( logit
transforms) as correlated heterogeneous outcomes versus a number of
covariates such as study quality, sample size, prevance of disease and
other clinical/methodologic characteristics. This has been done by
investigators using Proc Mixed in SAS. How may this be done with
Gllamm? mvreg?. Thanks


I'm not sure what model other investigators constructed for use with SAS's
PROC MIXED, but if there is no weighting by sample size or other covariate,
then couldn't it could be handled analogously in Stata using -xtreg-?

If the dataset is arranged with one study per record or row (each study's
sensitivity value, specificity value and all of the study-specific
covariates on one line), then rename the sensitivity and specificity as dep0
and dep1, and then -reshape long- so that they form one dependent variable
(dep) with an indicator variable as a new covariate.  There's an
illustration below with fictional data.

If it's of scientific interest, you could form terms for interaction of the
diagnostic accuracy indicator variable (sensitivity versus specificity) and
the other covariates of interest.

Since there are only two dependent variables, the variance-covariance matrix
is compound symmetric (two rows by two columns), so it doesn't seem
that -mvreg- would be necessary.

You can use -gllamm- analogously.  With -gllamm-, you won't need to create
logit transforms beforehand.  There are other advantages to -gllamm-, as
well, but if your interest is in matching the other investigators' method
using PROC MIXED, then -xtreg , re- would seem to be the command to use in

Joseph Coveney


input study_id sensitivity specificity ///
  str1 study_quality sample_size disease_prevalence
1 0.80 0.55 B 100 0.055
2 0.90 0.65 F  30 0.400
3 0.65 0.50 A 500 0.060
4 0.85 0.65 D  30 0.450
5 0.56 0.65 A 900 0.035
6 0.75 0.85 C  60 0.350
7 0.80 0.80 D 100 0.250
8 0.50 0.55 B 150 0.045
foreach var of varlist sensitivity specificity {
    replace `var' = ln(`var' / (1 - `var') )
* Begin here
rename sensitivity dep0
rename specificity dep1
reshape long dep, i(study_id) j(diagnostic_accuracy_indicator)
xi: xtreg dep diagnostic_accuracy_indicator i.study_quality ///
  sample_size disease_prevalence, i(study_id) theta sa re


*   For searches and help try:

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