Ich habe einen Datensatz mit dem folgenden Format.
Es gibt ein binäres Ergebnis Krebs / kein Krebs. Jeder Arzt im Datensatz hat jeden Patienten gesehen und ein unabhängiges Urteil darüber abgegeben, ob der Patient Krebs hat oder nicht. Die Ärzte geben dann ihr Konfidenzniveau von 5 an, dass ihre Diagnose korrekt ist, und das Konfidenzniveau wird in den Klammern angezeigt.
Ich habe verschiedene Möglichkeiten ausprobiert, um aus diesem Datensatz gute Prognosen zu erhalten.
Es funktioniert ziemlich gut für mich, nur über die Ärzte zu mitteln und deren Selbstvertrauen zu ignorieren. In der obigen Tabelle hätte dies zu korrekten Diagnosen für Patient 1 und Patient 2 geführt, obwohl fälschlicherweise gesagt worden wäre, dass Patient 3 Krebs hat, da die Ärzte mit 2: 1-Mehrheit glauben, dass Patient 3 Krebs hat.
Ich habe auch eine Methode ausprobiert, bei der wir zwei Ärzte nach dem Zufallsprinzip befragen. Wenn sie nicht übereinstimmen, geht die entscheidende Stimme an den Arzt, der sicherer ist. Diese Methode ist insofern wirtschaftlich, als wir nicht viele Ärzte konsultieren müssen, aber sie erhöht auch die Fehlerrate erheblich.
Ich habe eine verwandte Methode ausprobiert, bei der wir zufällig zwei Ärzte auswählen. Wenn sie nicht übereinstimmen, wählen wir zufällig zwei weitere aus. Wenn eine Diagnose mindestens zwei "Stimmen" voraus ist, entscheiden wir uns für diese Diagnose. Wenn nicht, beproben wir immer mehr Ärzte. Diese Methode ist ziemlich wirtschaftlich und macht nicht zu viele Fehler.
Ich kann nicht anders, als das Gefühl zu haben, dass mir eine ausgefeiltere Art fehlt, Dinge zu tun. Ich frage mich zum Beispiel, ob es eine Möglichkeit gibt, den Datensatz in Trainings- und Testsätze aufzuteilen, einen optimalen Weg zu finden, um die Diagnosen zu kombinieren, und dann zu sehen, wie sich diese Gewichte auf den Testsatz auswirken. Eine Möglichkeit ist eine Methode, mit der ich Ärzte, die immer wieder Fehler im Versuchs-Set gemacht haben, und möglicherweise hochgewichtige Diagnosen, die mit hoher Sicherheit gestellt werden, abnehmen kann (Vertrauen korreliert mit der Genauigkeit in diesem Datensatz).
Ich habe verschiedene Datensätze, die dieser allgemeinen Beschreibung entsprechen, daher variieren die Stichprobengrößen und nicht alle Datensätze beziehen sich auf Ärzte / Patienten. In diesem speziellen Datensatz gibt es jedoch 40 Ärzte, die jeweils 108 Patienten sahen.
BEARBEITEN: Hier ist ein Link zu einigen Gewichtungen, die sich aus meiner Lektüre der Antwort von @ jeremy-miles ergeben.
Ungewichtete Ergebnisse befinden sich in der ersten Spalte. Tatsächlich war in diesem Datensatz der maximale Konfidenzwert 4, nicht 5, wie ich zuvor fälschlicherweise sagte. Nach dem Ansatz von @ jeremy-miles wäre der höchste ungewichtete Wert, den ein Patient erhalten könnte, 7. Dies würde bedeuten, dass buchstäblich jeder Arzt mit einem Konfidenzniveau von 4 behauptete, dieser Patient habe Krebs. Die niedrigste ungewichtete Punktzahl, die ein Patient erhalten könnte, ist 0, was bedeuten würde, dass jeder Arzt mit einem Konfidenzniveau von 4 behauptete, dass dieser Patient keinen Krebs hatte.
Gewichtung nach Cronbachs Alpha. Ich fand in SPSS, dass es ein Cronbach-Alpha von insgesamt 0,9807 gab. Ich habe versucht zu überprüfen, ob dieser Wert korrekt ist, indem ich Cronbachs Alpha auf manuellere Weise berechnet habe. Ich habe eine Kovarianzmatrix aller 40 Ärzte erstellt, die ich hier einfüge . Dann basierend auf meinem Verständnis der Cronbach-Alpha-Formel Dabei ist die Anzahl der Elemente (hier sind die Ärzte die 'Elemente'). Ich berechnete durch Summieren aller diagonalen Elemente in der Kovarianzmatrix und durch aller Elemente in die Kovarianzmatrix. Ich habe dann bekommen Ich habe dann die 40 verschiedenen Cronbach Alpha-Ergebnisse berechnet, die auftreten würden, wenn jeder Arzt aus dem entfernt würde Datensatz. Ich habe jeden Arzt, der negativ zu Cronbachs Alpha beigetragen hat, mit Null gewichtet. Ich habe mir Gewichte für die verbleibenden Ärzte ausgedacht, die proportional zu ihrem positiven Beitrag zu Cronbachs Alpha sind.
Gewichtung nach Gesamtelementkorrelationen. Ich berechne alle Gesamtkorrelationen und gewichte dann jeden Arzt proportional zur Größe seiner Korrelation.
Gewichtung nach Regressionskoeffizienten.
Ich bin mir immer noch nicht sicher, wie ich sagen soll, welche Methode "besser" funktioniert als die andere. Zuvor hatte ich Dinge wie den Peirce Skill Score berechnet, der für Fälle geeignet ist, in denen es eine binäre Vorhersage und ein binäres Ergebnis gibt. Jetzt habe ich jedoch Prognosen von 0 bis 7 anstelle von 0 bis 1. Soll ich alle gewichteten Bewertungen> 3,50 in 1 und alle gewichteten Bewertungen <3,50 in 0 umwandeln?
quelle
No Cancer (3)
istCancer (2)
? Das würde Ihr Problem ein wenig vereinfachen.Cancer (4)
bis zur Vorhersage von keinem Krebs mit maximaler SicherheitNo Cancer (4)
. Wir können das nicht sagenNo Cancer (3)
undCancer (2)
sind gleich, aber wir könnten sagen, dass es ein Kontinuum gibt und die Mittelpunkte in diesem Kontinuum sindCancer (1)
undNo Cancer (1)
.Antworten:
Zuerst würde ich sehen, ob die Ärzte miteinander übereinstimmen. Sie können 50 Ärzte nicht separat analysieren, da Sie das Modell überanpassen - ein Arzt wird zufällig großartig aussehen.
Sie könnten versuchen, Vertrauen und Diagnose in einer 10-Punkte-Skala zu kombinieren. Wenn ein Arzt sagt, dass der Patient keinen Krebs hat und er sehr zuversichtlich ist, ist das eine 0. Wenn der Arzt sagt, dass er Krebs hat und er sehr zuversichtlich ist, ist das eine 9. Wenn der Arzt sagt, dass er keinen hat, und sind nicht zuversichtlich, das ist eine 5 usw.
Wenn Sie vorhersagen möchten, führen Sie eine Art Regressionsanalyse durch, aber wenn Sie über die kausale Reihenfolge dieser Variablen nachdenken, ist es umgekehrt. Ob der Patient Krebs hat, ist die Ursache der Diagnose, das Ergebnis ist die Diagnose.
Ihre Zeilen sollten Patienten sein, und Ihre Spalten sollten Ärzte sein. Sie haben jetzt eine Situation, die in der Psychometrie häufig vorkommt (weshalb ich das Tag hinzugefügt habe).
Schauen Sie sich dann die Beziehungen zwischen den Partituren an. Jeder Patient hat eine mittlere Punktzahl und eine Punktzahl von jedem Arzt. Korreliert die mittlere Punktzahl positiv mit der Punktzahl jedes Arztes? Wenn nicht, ist dieser Arzt wahrscheinlich nicht vertrauenswürdig (dies wird als Item-Total-Korrelation bezeichnet). Manchmal entfernen Sie einen Arzt aus der Gesamtpunktzahl (oder dem Mittelwert) und prüfen, ob dieser Arzt mit dem Mittelwert aller anderen Ärzte korreliert - dies ist die korrigierte Gesamtkorrelation des Elements.
Sie könnten Cronbachs Alpha (eine Form der klasseninternen Korrelation) und das Alpha ohne jeden Arzt berechnen. Alpha sollte immer steigen, wenn Sie einen Arzt hinzufügen. Wenn es also steigt, wenn Sie einen Arzt entfernen, ist die Bewertung dieses Arztes verdächtig (dies sagt Ihnen oft nichts anderes als die korrigierte Korrelation zwischen Artikel und Gesamtmenge).
Wenn Sie R verwenden, ist diese Art von Dingen im Psychopaket mit der Funktion Alpha verfügbar. Wenn Sie Stata verwenden, lautet der Befehl Alpha, in SAS ist es proc corr und in SPSS ist es unter Skalierung, Zuverlässigkeit.
Dann können Sie eine Punktzahl als Mittelwert von jedem Arzt oder als gewichteten Mittelwert (gewichtet durch die Korrelation) berechnen und prüfen, ob diese Punktzahl die wahre Diagnose vorhersagt.
Oder Sie können diese Phase überspringen und die Punktzahl jedes Arztes bei der Diagnose separat zurückbilden und die Regressionsparameter als Gewichte behandeln.
Fühlen Sie sich frei, um Klarstellung zu bitten, und wenn Sie ein Buch möchten, mag ich Streiner und Normans "Health Measurement Scales".
-Bearbeiten: basierend auf den zusätzlichen Informationen des OP.
Wow, das ist ein verdammtes Cronbach-Alpha. Das einzige Mal, dass ich es so hoch gesehen habe, war, als ein Fehler gemacht wurde.
Ich würde jetzt eine logistische Regression durchführen und mir die ROC-Kurven ansehen.
Der Unterschied zwischen der Gewichtung durch Regression und der Korrelation hängt davon ab, wie die Ärzte Ihrer Meinung nach reagieren. Einige Dokumente sind im Allgemeinen sicherer (ohne geschickter zu sein), und daher verwenden sie möglicherweise die extremen Bereiche häufiger. Wenn Sie dies korrigieren möchten, verwenden Sie die Korrelation anstelle der Regression. Ich würde wahrscheinlich durch Regression gewichten, da dies die Originaldaten beibehält (und keine Informationen verwirft).
Bearbeiten (2): Ich habe logistische Regressionsmodelle in R ausgeführt, um zu sehen, wie gut jeder die Ausgabe vorhergesagt hat. tl / dr: da ist nichts zwischen ihnen.
Hier ist mein Code:
Und die Ausgabe:
quelle
Zwei sofort einsatzbereite Vorschläge:
quelle
P
= Wahrscheinlichkeit, dass der Krebs vom Arzt gegeben wird, dann (in Python-Notation):y=[1 if p >= 0.5 else 0 for p in P]
undw=[abs(p-0.5)*2 for p in P]
. Dann trainieren Sie das Modell:LogisticRegression().
fit
(X,y,w)
(Dies liegt außerhalb meines Fachgebiets, daher ist die Antwort von Jeremy Miles möglicherweise zuverlässiger.)
Hier ist eine Idee.
Stellen Sie sich zunächst vor, es gibt kein Konfidenzniveau. Dann haben sie für jeden Patienten entweder Krebs oder nicht , und jeder Arzt diagnostizierte entweder Krebs oder nicht, .i=1…N ci∈{0,1} j=1…m dij∈{0,1}
Ein einfacher Ansatz besteht darin anzunehmen, dass, während die Ärzte der Diagnose eines bestimmten Patienten zustimmen oder nicht zustimmen können, die Diagnose jedes Arztes als unabhängig behandelt werden kann , wenn wir den wahren Status des Patienten kennen . Das heißt, die sind bei bedingt unabhängig . Dies führt zu einem genau definierten Klassifikator namens Naive Bayes mit Parametern, die leicht abzuschätzen sind.dij ci
Insbesondere sind die primären Parameter die Basisrate und die bedingten Diagnosewahrscheinlichkeiten Beachten Sie, dass dieser letztere Parameter ein gewichteter Durchschnitt der Diagnosen für Arzt , wobei die Gewichte die wahren Patientenzustände .p[c]≈1N∑ici
Wenn dieses Modell vernünftig ist, besteht eine Möglichkeit, die Konfidenzniveaus einzubeziehen, darin, die Gewichte anzupassen. Dann würden die bedingten Wahrscheinlichkeiten Hier ist eine Gewichtung, die das Konfidenzniveau von berücksichtigt .
Beachten Sie, dass Sie, wenn Ihre Gewichte als Wahrscheinlichkeiten gegossen werden , die Formel " Bernoulli- Verknüpfung" , um den Fall angemessen zu berücksichtigen .w∈[0,1]
Hinweis: Dies erfordert , dass Ihre Software zu geben ,w∈(0,1) k∈{1…K} w=k/(K+1)
0^0=1
anstatt0^0=NaN
, was üblich ist , aber es lohnt! Alternativ können Sie sicherstellen , z. B. wenn das Vertrauen ist, würde funktionieren.quelle
No Cancer (3) = Cancer (2)
, stimmt dies mit meinem Gewichtungsmodell überein, das , da . Wenn Sie alternativ sagen , stimmt dies mit überein , da .No Cancer (3) = Cancer (3)
Aus Ihrer Frage geht hervor, dass Sie Ihr Messsystem testen möchten. Im Bereich der Verfahrenstechnik wäre dies eine Attributmesssystemanalyse oder MSA.
Dieser Link enthält einige nützliche Informationen zur erforderlichen Stichprobengröße und zu den Berechnungen, die zur Durchführung einer Studie dieses Typs ausgeführt werden. https://www.isixsigma.com/tools-templates/measurement-systems-analysis-msa-gage-rr/making-sense-attribute-gage-rr-calculations/
Bei dieser Studie müsste der Arzt mindestens zweimal denselben Patienten mit denselben Informationen diagnostizieren.
Sie können diese Studie auf zwei Arten durchführen. Sie können die einfache Bewertung für Krebs / kein Krebs verwenden, um die Übereinstimmung zwischen Ärzten und jedem Arzt zu bestimmen. Idealerweise sollten sie auch in der Lage sein, mit dem gleichen Maß an Sicherheit zu diagnostizieren. Sie können dann die vollständige 10-Punkte-Skala verwenden, um die Übereinstimmung zwischen und durch jeden Arzt zu testen. (Jeder sollte zustimmen, dass Krebs (5) die gleiche Bewertung hat, dass kein Krebs (1) die gleiche Bewertung hat usw.)
Die Berechnungen auf der verlinkten Website sind auf jeder Plattform, die Sie für Ihre Tests verwenden, einfach durchzuführen.
quelle