Following up on my earlier comment, I believe that you can use the original data to do a proper analysis that estimates the common sensitivity for each device across the studies taking into account the correlation caused by subjects providing responses on both devices. The analysis, using a GEE model, can provide the common sensitivities along with standard errors allowing for confidence intervals and a comparison.
The following DATA step generates some example data. This simple step just generates, for each subject (ID), random binary values on the gold standard and each device. While it doesn't try to build in specific sensitivity values or any correlation, it will serve to illustrate the analysis. It creates data for two devices and three studies, but the proposed analysis could be used for more of both. Note that each subject has two observations created and the variable, DIAG, is created to hold the binary responses from each device (DEV).
data f;
call streaminit(42633);
do study=1 to 3;
do rep=1 to 20;
drop rep;
id+1; gold=rand('bernoulli',.5);
dev=1; diag=rand('bernoulli',.5); output;
dev=2; diag=rand('bernoulli',.5); output;
end; end;
run;
Before doing the analysis, let's find out the sensitivities in the tables from the generated data. The following produces the 2x2 table for each device against the gold standard within each study.
proc sort data=f;
by study dev;
run;
proc freq data=f;
by study dev;
table diag*gold;
run;
As shown in this note, the sensitivity in each table is the column percent in the 1,1 cell, so since it is really only necessary to work with the gold=1 column, the following statements again obtain and save the sensitivity values. As such, the sensitivity is just the event probability of the binary, gold=1, variable in each table. The PROC MEANS step then shows the simple averages of the observed sensitivities for each device.
proc freq data=f;
where gold=1;
by study dev;
table diag;
ods output onewayfreqs=frqs(where=(diag=1));
run;
proc means mean;
class dev; var percent;
run;
The following fits a logistic GEE model on the sensitivities. Similar to what is done in the second FREQ step above, only the gold=1 data is used.
proc genmod data=f;
where gold=1;
class study dev;
model diag(event='1')=dev / dist=bin;
repeated subject=study;
lsmeans dev / ilink diff cl plots=none;
run;
You can see that the estimated common sensitivity for each device across the studies (provided by the ILINK option in the LSMEANS statement) is similar to the average of its observed sensitivities found by PROC FREQ above. The DIFF and CL options provide confidence intervals and a comparison of the device sensitivities.
You can see that GENMOD reproduces the observed sensitivities by fitting a saturated model (though that model leaves no variability with which to obtain standard errors):
proc genmod data=f;
where gold=1;
class study dev;
model diag(event='1')=study|dev / dist=bin;
repeated subject=study;
lsmeans study*dev / ilink plots=none;
run;
I believe that a similar approach can be taken to do the same for other 2x2 table statistics like specificity.
... View more