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%):
- 65/50
- 25/70
- 30/60
- 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:
- 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".)
- 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.)