Comment combiner les résultats de plusieurs tests binaires?


8

Tout d'abord, permettez-moi de dire que j'ai suivi un cours de statistiques à l'école d'ingénieur il y a 38 ans. Alors je vole aveugle ici.

J'ai les résultats de ce qui sont essentiellement 18 tests de diagnostic distincts pour une maladie. Chaque test est binaire - oui / non, sans seuil pouvant être ajusté pour "régler" le test. Pour chaque test, j'ai des données ostensiblement valides sur les vrais / faux positifs / négatifs par rapport au «gold standard», ce qui donne des chiffres de spécificité et de sensibilité (et tout ce que vous pouvez déduire de ces données).

Bien sûr, aucun test n'a une spécificité / sensibilité suffisante pour être utilisé seul, et lorsque vous "regardez" les résultats de tous les tests, il n'y a souvent pas de tendance évidente.

Je me demande quelle est la meilleure façon de combiner ces chiffres de manière à produire un score final qui est (espérons-le) plus fiable que n'importe quel test. Jusqu'à présent, j'ai trouvé la technique de combinaison des spécificités des tests VRAI en utilisant

spec_combined = 1 - (1 - spec_1) * (1 - spec_2) * ... (1 - spec_N)

et en combinant les sensibilités des tests FAUX de la même manière. Le rapport

(1 - sens_combined) / (1 - spec_combined) 

semble alors donner un "score final" raisonnablement bon, une valeur supérieure à 10 environ étant un VRAI fiable et une valeur inférieure à 0,1 environ étant un FAUX fiable.

Mais ce schéma manque de véritable rigueur et, pour certaines combinaisons de résultats de test, il semble produire une réponse contre-intuitive.

Existe-t-il une meilleure façon de combiner les résultats des tests de plusieurs tests, compte tenu de leurs spécificités et sensibilités? (Certains tests ont une spécificité de 85 et une sensibilité de 15, d'autres sont exactement le contraire.)

OK, ma tête me fait mal!

Disons que j'ai des tests 1-4 avec des sensibilités / spécificités (en%):

  1. 65/50
  2. 25/70
  3. 30/60
  4. 85/35

Les tests 1 et 2 sont positifs, 3 et 4 négatifs.

La probabilité putative que 1 soit un faux positif serait (1 - 0,5) et pour 2 (1 - 0,7), donc la probabilité que les deux soient faux positifs serait de 0,5 x 0,3 = 0,15.

La probabilité putative que 3 et 4 soient de faux négatifs serait (1 - 0,3) et (1 - 0,85) ou 0,7 x 0,15 = 0,105.

(Nous ignorerons pour le moment le fait que les chiffres ne s'additionnent pas.)

Mais les probabilités présumées que 1 et 2 sont de vrais positifs sont 0,65 et 0,25 = 0,1625, tandis que les probabilités présumées que 3 et 4 sont de vrais négatifs sont 0,6 et 0,35 = 0,21.

Maintenant, nous pouvons poser deux questions:

  1. Pourquoi ne pas les chiffres ajoutent (ou même se fermer). (Les nombres sens / spec que j'ai utilisés proviennent de la "vraie vie".)
  2. Comment devrais-je décider quelle hypothèse est (très probablement) vraie (dans cet exemple, elle semble être "négative" pour les deux calculs, mais je ne suis pas sûr que ce soit toujours le cas), et que puis-je utiliser pour une "figure de mérite" "pour décider si le résultat est" significatif "?

Plus d'informations

Il s'agit d'une tentative d'affiner et d'étendre un système de «pondération» existant qui est entièrement de nature «artistique» (c'est-à-dire qu'il vient tout juste d'être retiré de l'a **). Le schéma actuel est fondamentalement du type "Si deux des trois premiers sont positifs, et si deux des quatre suivants et l'un des deux suivants, alors supposez positif." (C'est un exemple quelque peu simplifié, bien sûr.) Les statistiques disponibles ne prennent pas en charge ce schéma de pondération - même avec un algorithme de pondération brut basé sur les statistiques mesurées, je trouve des réponses sensiblement différentes. Mais, en l'absence d'une manière rigoureuse d'évaluer les statistiques, je n'ai aucune crédibilité.

De plus, le schéma actuel ne décide que positif / négatif, et j'ai besoin de créer un cas (statistiquement valide) "ambigu" au milieu, donc un certain mérite est nécessaire.

Dernier

J'ai implémenté un algorithme d'inférence bayésienne plus ou moins "pur", et, après avoir tourné en rond sur plusieurs problèmes secondaires, il semble fonctionner assez bien. Plutôt que de travailler à partir de spécificités et de sensibilités, je dérive les entrées de formule directement à partir des vrais vrais / faux positifs. Malheureusement, cela signifie que je ne peux pas utiliser certaines des données de meilleure qualité qui ne sont pas présentées de manière à permettre l'extraction de ces nombres, mais l'algorithme est beaucoup plus propre, permet la modification des entrées avec beaucoup moins de calcul manuel, et il semble assez stable et les résultats correspondent assez bien à "l'intuition".

J'ai également trouvé un "algorithme" (au sens purement de la programmation) pour gérer les interactions entre les observations interdépendantes. Fondamentalement, plutôt que de chercher une formule de balayage, je garde à la place pour chaque observation un multiplicateur de probabilité marginal qui est modifié au fur et à mesure que les observations précédentes sont traitées, sur la base d'un tableau simple - "Si l'observation A est vraie, modifiez la probabilité marginale de l'observation B par un facteur de 1,2 ", par exemple. Pas élégant, en aucun cas, mais utilisable, et il semble être raisonnablement stable sur une gamme d'entrées.

(Je vais attribuer la prime à ce que je considère avoir été le poste le plus utile en quelques heures, donc si quelqu'un veut se faire lécher, n'hésitez pas.)


La probabilité que le test 1 soit un faux positif n'est pas 1 - .5, c'est 1 - (.5 * Probabilité de ne pas avoir la maladie)
fgregg

Bon point. Cela peut m'aider à donner un peu plus de sens aux choses.
Daniel R Hicks

Désolé, en fait, j'avais tort. Spécificité = Pr (Vrai Négatif) / [Pr (Vrai Négatif) + Pr (Faux Positif)] donc Pr (Faux Positif) = Pr (Vrai Négatif) / spécificité - Pr (Vrai Négatif) qui est égal à Pr (Faux Positif) = Pr (Pas de maladie) (1 - spécificité)
fgregg

1
Juste pour clarifier: lorsque vous dites que vous recherchez la rigueur, vous ne voulez pas dire «rigueur statistique», c'est-à-dire que vous n'avez pas nécessairement besoin du test combiné pour vous donner des probabilités précises d'erreurs de type 1 et 2, n'est-ce pas? Vous cherchez juste quelque chose qui n'est pas sorti de l'air?
SheldonCooper du

1
Comment savez-vous que les tests sont fortement interdépendants? Est-ce votre connaissance a priori de haut niveau (par exemple, les deux tests utilisent la pression artérielle, donc ils sont probablement corrélés), ou avez-vous des statistiques qui montrent qu'ils sont corrélés? Dans ce dernier cas, vous pouvez utiliser une légère modification de la proposition de fgregg: modélisez tous les tests comme indépendants, à l'exception de ces paires interdépendantes, que vous devez modéliser sous forme de paires. Cela nécessitera quelques statistiques supplémentaires (du formulairep(T1,T2|Disease)), que vous possédez probablement puisque vous savez qu'ils sont corrélés.
SheldonCooper du

Réponses:


1

"Je me demande quelle est la meilleure façon de combiner ces chiffres d'une manière qui donnera un score final qui est (je l'espère) plus fiable que n'importe quel test." Une méthode très courante consiste à calculer l'alpha de Cronbach et, plus généralement, à effectuer ce que certains appellent une analyse de fiabilité «standard». Cela montrerait dans quelle mesure un score donné est en corrélation avec la moyenne des 17 autres scores; quels scores des tests pourraient être mieux supprimés de l'échelle; et quelle est la fiabilité de cohérence interne à la fois avec les 18 et avec un sous-ensemble donné. Maintenant, certains de vos commentaires semblent indiquer que bon nombre de ces 18 ne sont pas corrélés; si cela est vrai, vous pouvez vous retrouver avec une échelle composée de quelques tests seulement.

MODIFIER APRÈS COMMENTAIRE: Une autre approche s'appuie sur l'idée qu'il existe un compromis entre cohérence interne et validité. Moins vos tests sont corrélés, meilleure est leur couverture de contenu, ce qui améliore la validité du contenu (sinon la fiabilité). Donc, en pensant à cela, vous ignoreriez l'alpha de Cronbach et les indicateurs connexes de corrélation article-total et utiliseriez plutôt un raisonnement a priori pour combiner les 18 tests dans une échelle. Espérons qu'une telle échelle serait fortement corrélée avec votre étalon-or.


Pour diverses raisons (biais médical fondamentalement conservateur), je n'ai pas la possibilité d'éliminer les tests, et je ne le souhaite pas spécialement. Pensez-y comme peut-être analogue à un pointage de crédit, où avoir une grosse dette de carte de crédit est «sans corrélation» avec un emploi mal payé et susceptible d'être mis à pied, mais les deux ensemble créent une situation beaucoup plus grave que soit individuellement.
Daniel R Hicks

1

Pour simplifier un peu, supposons que vous n'avez que deux tests de diagnostic. Vous voulez calculer

Pr(DiseaseT1,T2)=Pr(T1,T2Disease)Pr(Disease)Pr(T1,T2)

Vous avez suggéré que les résultats de ces tests sont indépendants, conditionnels à la présence d'une maladie chez la personne. Si oui, alors

Pr(T1,T2Disease)=Pr(T1Disease)Pr(T2Disease)

Pr(TiDisease) est la sensibilité du test i.

Pr(T1,T2) est la probabilité inconditionnelle qu'une personne aléatoire soit testée positive sur les deux tests:

Pr(T1,T2)=Pr(T1,T2Disease)Pr(Disease)+Pr(T1,T2No Disease)Pr(No Disease)

Pr(T1,T2No Disease)=Pr(T1No Disease)Pr(T2No Disease)

et Pr(TiNo Disease) est 1specificity pour test je.


Je ne suis pas sûr que cela fonctionne dans mon cas (si je comprends bien la «régression logistique» à mi-chemin). Tout d'abord, comme décrit, il n'y a pas (ou au moins relativement peu) de seuils ou de facteurs de réglage que je peux ajuster pour chaque test individuel - juste des résultats positifs / négatifs. Deuxièmement, je n'ai pas le luxe de pouvoir obtenir de nouvelles données pour «former» le modèle - il suffit de se donner les dents pour trouver les données dont je dispose.
Daniel R Hicks

Pourriez-vous décrire un peu plus vos données. Je pensais que vous connaissiez la vérité sur le fait de savoir si les cas avaient la maladie ou non?
fgregg

1
La difficulté que vous rencontrez avec les chiffres ne correspondent pas est avec les informations redondantes. Par exemple, supposons que l'un des tests soit «pression artérielle systolique (TAS)> 140», et l'autre «pression artérielle diastolique (DBP)> 90». Eh bien, ces 2 sont corrélés et les informations inhérentes à chacun ne sont pas uniques. En les combinant logiquement, disons "SBP> 140 ou DBP> 90" offrira une amélioration incrémentielle de la sensibilité. Mais sans un ensemble de données mesurant simultanément l'étalon-or, le SBP et le DBP, il n'existe aucun moyen précis de quantifier la sensibilité et la spécificité du test combiné.
Ming K

1
@Daniel: Il semble que vous n'aurez pas besoin de nouvelles données (au-delà de ce que vous avez déjà) pour cette approche. Il semble que vous aurez besoin des taux vrai / faux positifs / négatifs, et vous n'avez pas besoin de seuils.
SheldonCooper

1
@Daniel: c'était en réponse à votre commentaire du 14 juillet. Ce que fgregg a décrit est fondamentalement une approche Naive Bayes. Il semble que vous ayez suffisamment d'informations pour utiliser cette approche. Tout ce dont vous avez besoin, c'est des tarifs dont vous disposez. Vous n'avez pas besoin de nouvelles informations et vous n'avez pas besoin de seuils pour les tests. Il semble que vous ayez déjà compris cela, puisque vous dites que vous l'avez essayé. Vous avez raison de dire que toute dépendance faussera les résultats.
SheldonCooper
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.