Mam zestaw danych o następującym formacie.
Istnieje wynik binarny rak / brak raka. Każdy lekarz w zbiorze danych widział każdego pacjenta i oceniał go niezależnie od tego, czy pacjent ma raka. Następnie lekarze podają poziom ufności na 5, że diagnoza jest prawidłowa, a poziom ufności jest wyświetlany w nawiasach.
Próbowałem różnych sposobów, aby uzyskać dobre prognozy z tego zestawu danych.
U mnie całkiem dobrze działa uśrednianie wśród lekarzy, ignorując ich poziom pewności siebie. W powyższej tabeli dałoby to prawidłowe diagnozy dla pacjenta 1 i pacjenta 2, chociaż niepoprawnie powiedziałoby, że pacjent 3 ma raka, ponieważ większość 2-1 lekarze uważają, że pacjent 3 ma raka.
Próbowałem także metody, w której losowo badamy dwóch lekarzy, a jeśli nie zgadzają się ze sobą, wówczas decydujący głos przechodzi do tego, który lekarz jest bardziej pewny siebie. Ta metoda jest ekonomiczna, ponieważ nie musimy konsultować się z wieloma lekarzami, ale również znacznie zwiększa wskaźnik błędów.
Próbowałem pokrewnej metody, w której losowo wybieramy dwóch lekarzy, a jeśli nie zgadzają się ze sobą, losowo wybieramy dwóch kolejnych. Jeśli jedna diagnoza zostanie wyprzedzona co najmniej dwoma „głosami”, wówczas rozstrzygamy sprawy na korzyść tej diagnozy. Jeśli nie, próbujemy kolejnych lekarzy. Ta metoda jest dość ekonomiczna i nie popełnia zbyt wielu błędów.
Nie mogę oprzeć się wrażeniu, że brakuje mi bardziej wyrafinowanego sposobu robienia rzeczy. Na przykład zastanawiam się, czy istnieje jakiś sposób, w jaki mógłbym podzielić zestaw danych na zestawy szkoleniowe i testowe, i opracować optymalny sposób łączenia diagnoz, a następnie zobaczyć, jak te wagi działają na zestawie testowym. Jedną z możliwości jest jakaś metoda, która pozwala mi na obniżenie wagi lekarzy, którzy ciągle popełniają błędy w zestawie próbnym, i być może diagnozę nadwagi, która jest dokonywana z dużą pewnością (pewność koreluje z dokładnością w tym zestawie danych).
Mam różne zestawy danych pasujące do tego ogólnego opisu, więc rozmiary próbek różnią się i nie wszystkie zestawy danych dotyczą lekarzy / pacjentów. Jednak w tym konkretnym zbiorze danych jest 40 lekarzy, z których każdy widział 108 pacjentów.
EDYCJA: Oto link do niektórych wag, które wynikają z mojego przeczytania odpowiedzi @ jeremy-miles.
Wyniki nieważone znajdują się w pierwszej kolumnie. W rzeczywistości w tym zestawie danych maksymalna wartość ufności wynosiła 4, a nie 5, jak błędnie powiedziałem wcześniej. Tak więc, zgodnie z podejściem @ jeremy-miles, najwyższy wynik nieważony, jaki może uzyskać każdy pacjent, wynosiłby 7. To znaczy, że dosłownie każdy lekarz stwierdził z poziomem ufności 4, że ten pacjent miał raka. Najniższy wynik nieważony, jaki może uzyskać każdy pacjent, wynosi 0, co oznaczałoby, że każdy lekarz stwierdził z poziomem ufności 4, że ten pacjent nie miał raka.
Ważenie według Alfa Cronbacha. W SPSS znalazłem, że ogólna alfa Cronbacha wynosi 0,9807. Próbowałem sprawdzić, czy ta wartość była poprawna, obliczając Alfa Cronbacha w bardziej ręczny sposób. Stworzyłem macierz kowariancji wszystkich 40 lekarzy, którą tu wklejam . Następnie w oparciu o moje zrozumienie formuły Cronbacha gdzie jest liczbą elementów (tutaj lekarze są „przedmiotami”) obliczyłem , sumując wszystkie elementy ukośne w macierzy kowariancji, a , sumując wszystkie elementy w macierz kowariancji. Potem dostałem Następnie obliczyłem 40 różnych wyników Cronbach Alpha, które wystąpiłyby po usunięciu każdego lekarza z zestaw danych. Ważyłem zero lekarzy, którzy negatywnie przyczynili się do alfa Cronbacha na zero. Wymyśliłem wagi dla pozostałych lekarzy proporcjonalne do ich pozytywnego wkładu w alfa Cronbacha.
Ważenie według łącznej korelacji pozycji. Obliczam wszystkie całkowite korelacje pozycji, a następnie ważę każdego lekarza proporcjonalnie do wielkości ich korelacji.
Ważenie według współczynników regresji.
Jednej rzeczy, której wciąż nie jestem pewien, jak powiedzieć, która metoda działa „lepiej” niż druga. Wcześniej obliczałem takie rzeczy jak Peirce Skill Score, który jest odpowiedni dla przypadków, w których istnieje binarna prognoza i wynik binarny. Jednak teraz mam prognozy w zakresie od 0 do 7 zamiast od 0 do 1. Czy powinienem przekonwertować wszystkie wyniki ważone> 3,50 na 1 i wszystkie wyniki ważone <3,50 na 0?
źródło
No Cancer (3)
jestCancer (2)
? To trochę uprościłoby twój problem.Cancer (4)
do przewidywania braku raka z maksymalną pewnościąNo Cancer (4)
. Nie możemy tego powiedziećNo Cancer (3)
iCancer (2)
są takie same, ale moglibyśmy powiedzieć, że istnieje kontinuum, a środkowymi punktami tego kontinuum sąCancer (1)
iNo Cancer (1)
.Odpowiedzi:
Najpierw sprawdziłbym, czy lekarze się ze sobą zgadzają. Nie możesz przeanalizować 50 lekarzy osobno, ponieważ dopasujesz model - jeden lekarz będzie przez przypadek wyglądał świetnie.
Możesz spróbować połączyć pewność siebie i diagnozę w 10-punktową skalę. Jeśli lekarze stwierdzą, że pacjent nie ma raka, i są bardzo pewni siebie, to wynosi 0. Jeśli lekarz mówi, że ma raka i są bardzo pewni, to jest to 9. Jeśli doktor twierdzi, że nie ma, i nie są pewni, to jest 5 itd.
Kiedy próbujesz przewidzieć, przeprowadzasz analizę regresji, ale myśląc o przyczynowym uporządkowaniu tych zmiennych, jest na odwrót. Niezależnie od tego, czy przyczyną raka jest pacjent, wynikiem jest diagnoza.
Wasze rzędy powinny być pacjentami, a kolumny kolumnami lekarzami. Masz teraz sytuację, która jest powszechna w psychometrii (dlatego dodałem tag).
Następnie spójrz na relacje między wynikami. Każdy pacjent ma średnią punktację i punktację od każdego lekarza. Czy średni wynik koreluje dodatnio z wynikiem każdego lekarza? Jeśli nie, ten lekarz prawdopodobnie nie jest godny zaufania (nazywa się to korelacją między pozycją a wartością całkowitą). Czasami usuwasz jednego lekarza z całkowitego wyniku (lub średniego wyniku) i sprawdzasz, czy ten lekarz koreluje ze średnią wszystkich innych lekarzy - jest to skorygowana całkowita korelacja pozycji.
Można obliczyć alfa Cronbacha (co jest formą korelacji wewnątrzklasowej) i alfa bez każdego lekarza. Alfa powinna zawsze wzrastać po dodaniu lekarza, więc jeśli wzrośnie po usunięciu lekarza, ocena lekarza jest podejrzana (to często nie mówi nic innego niż skorygowana korelacja pozycji z całkowitą).
Jeśli używasz R, tego rodzaju rzeczy są dostępne w pakiecie psych za pomocą funkcji alpha. Jeśli używasz Staty, polecenie jest alfa, w SAS jest proc corr, aw SPSS jest skalowane, niezawodność.
Następnie możesz obliczyć wynik jako średni wynik każdego lekarza lub średnią ważoną (ważoną przez korelację) i sprawdzić, czy wynik ten prognozuje prawdziwą diagnozę.
Możesz też pominąć ten etap i zarejestrować osobno wyniki każdego lekarza po diagnozie i traktować parametry regresji jako ciężary.
Nie wahaj się prosić o wyjaśnienia, a jeśli chcesz książkę, podoba mi się „Skala pomiaru zdrowia” Streinera i Normana.
-Edycja: na podstawie dodatkowych informacji PO.
Wow, to cholernie alfa Cronbacha. Widziałem to tak wysoko tylko wtedy, gdy popełniono błąd.
Wykonałbym teraz regresję logistyczną i spojrzałbym na krzywe ROC.
Różnica między wagą regresji a korelacją zależy od tego, w jaki sposób lekarze reagują. Niektóre dokumenty mogą być na ogół bardziej pewne siebie (nie są bardziej zręczne), a zatem mogą częściej używać skrajnych zakresów. Jeśli chcesz to poprawić, skorzystaj z korelacji zamiast z regresji. Prawdopodobnie miałbym wagę regresji, ponieważ zachowuje oryginalne dane (i nie odrzuca żadnych informacji).
Edycja (2): Uruchomiłem modele regresji logistycznej w R, aby zobaczyć, jak dobrze każdy przewidział wynik. tl / dr: nic między nimi nie ma.
Oto mój kod:
A wynik:
źródło
Dwie gotowe sugestie:
źródło
P
= prawdopodobieństwo zachorowania na raka podane przez lekarza, a następnie (w notacji python):y=[1 if p >= 0.5 else 0 for p in P]
iw=[abs(p-0.5)*2 for p in P]
. Następnie trenuj model:LogisticRegression().
fit
(X,y,w)
(To nie moja specjalizacja, więc odpowiedź Jeremy'ego Milesa może być bardziej wiarygodna).
Oto jeden pomysł.
Po pierwsze, wyobraź sobie, że nie ma poziomu zaufania. Następnie dla każdego pacjenta ma raka albo nie ma , a każdy lekarz zdiagnozował u nich raka lub nie, .i = 1 … N doja∈ { 0 , 1 } j = 1 … m reI j∈ { 0 , 1 }
Prostym podejściem jest założenie, że chociaż lekarze mogą zgodzić się lub nie zgodzić w sprawie diagnozy danego pacjenta, jeśli znamy prawdziwy status pacjenta, diagnozę każdego lekarza można traktować jako niezależną. Oznacza to, że są warunkowo niezależne, biorąc uwagę . Wynikiem tego jest dobrze zdefiniowany klasyfikator znany jako Naive Bayes , którego parametry są łatwe do oszacowania.dij ci
W szczególności podstawowymi parametrami są stawka podstawowa, , a prawdopodobieństwo diagnostyki warunkowej Należy zauważyć, że ten ostatni parametr jest średnią ważoną diagnoz dla lekarza , gdzie wagi są prawdziwymi warunkami pacjenta .p[c]≈1N∑ici
Teraz, jeśli ten model jest rozsądny, wówczas jednym ze sposobów włączenia poziomów ufności jest dostosowanie wag. Wówczas prawdopodobieństwa warunkowe stałyby się Tutaj to waga, która odpowiada poziomowi ufności .
Zauważ, że jeśli twoje wagi są wyrzucane jako prawdopodobieństwa , możesz użyć formuły „skrót Bernoulliego ” odpowiednio uwzględnić przypadek .w∈[0,1]
Uwaga: Wymaga to, aby twoje oprogramowanie dawałow∈(0,1) k∈{1…K} w=k/(K+1)
0^0=1
zamiast0^0=NaN
, co jest powszechne, ale warto to sprawdzić! Alternatywnie możesz zapewnić , np. Jeśli ufność wynosi wtedy będzie działać.źródło
No Cancer (3) = Cancer (2)
, jest to zgodne z moim modelem ważenia, używając , ponieważ . Alternatywnie, jeśli powiesz , jest to zgodne z , ponieważ .No Cancer (3) = Cancer (3)
Z twojego pytania wynika, że to, co chcesz przetestować, to twój system pomiarowy. W dziedzinie inżynierii procesowej byłaby to analiza systemu pomiaru atrybutów lub MSA.
Ten link zawiera przydatne informacje na temat potrzebnej wielkości próby oraz obliczeń przeprowadzanych w celu przeprowadzenia badania tego typu. https://www.isixsigma.com/tools-templates/measurement-systems-analysis-msa-gage-rr/making-sense-attribute-gage-rr-calculations/
W ramach tego badania lekarz musiałby również zdiagnozować u tego samego pacjenta co najmniej dwukrotnie te same informacje.
Możesz przeprowadzić to badanie na dwa sposoby. Możesz użyć prostej oceny raka / brak raka, aby ustalić porozumienie między lekarzami i każdym lekarzem. Idealnie powinny być w stanie zdiagnozować z takim samym poziomem pewności. Następnie możesz użyć pełnej 10-punktowej skali, aby sprawdzić zgodność między i przez każdego lekarza. (Wszyscy powinni zgodzić się, że rak (5) to ta sama ocena, że żaden rak (1) nie jest taki sam, itd.)
Obliczenia w połączonej witrynie są łatwe do przeprowadzenia na dowolnej platformie, z której korzystasz do swoich testów.
źródło