Istotność statystyczna (wartość p) dla porównania dwóch klasyfikatorów w odniesieniu do (średniej) AUC ROC, czułości i swoistości

14

Mam zestaw testowy 100 przypadków i dwa klasyfikatory.

Wygenerowałem prognozy i obliczyłem AUC ROC, czułość i swoistość dla obu klasyfikatorów.

Pytanie 1: Jak obliczyć wartość p, aby sprawdzić, czy jedna jest znacznie lepsza od drugiej pod względem wszystkich wyników (AOC ROC, czułość, swoistość)?


Teraz, dla tego samego zestawu testowego 100 przypadków, mam różne i niezależne przypisania funkcji dla każdego przypadku. Wynika to z faktu, że moje funkcje są stałe, ale subiektywne i dostarczane przez wiele (5) podmiotów.

Tak więc ponownie oceniłem moje dwa klasyfikatory dla 5 „wersji” mojego zestawu testowego i uzyskałem 5 AUC ROC, 5 czułości i 5 swoistości dla obu klasyfikatorów. Następnie obliczyłem średnią z każdej miary wydajności dla 5 osób (średnia ROC AUC, średnia czułość i średnia swoistość) dla obu klasyfikatorów.

Pytanie 2: Jak obliczyć wartość p, aby sprawdzić, czy jedna jest znacznie lepsza od drugiej pod względem średnich wyników (średnia AUC ROC, średnia czułość, średnia swoistość)?


Odpowiedzi za pomocą przykładowego kodu python (najlepiej) lub kodu MatLab są mile widziane.

kostek
źródło
Czy bezpośrednie porównanie precyzji, dokładności, AuC, aby uzyskać najlepszy klasyfikator wśród tych dwóch. Wartość p nie ma tutaj sensu. Wartość p jest stosowany w ramach oceny, czy model jest w lepszej niż losowe / 50-50 przyporządkowania (jako zerowy / alternatywnym teście hipotezy)
Nishad
2
Po pierwsze, nie zgadzam się, że porównanie dwóch miar wydajności przy użyciu wartości p nie ma tutaj sensu. Widzę, że jeden klasyfikator ma AUC 0,80, a drugi 0,85. Moja hipoteza zerowa byłaby taka, że ​​nie ma różnicy w wydajności obu ogłoszeń. Chcę wiedzieć, czy różnica jest istotna statystycznie.
kostek
2
Po drugie, nie tworzę 5 wersji mojego modelu. Mam dwa modele przeszkolone na oddzielnym zestawie treningowym i teraz oceniam je na 5 różnych „wersjach” mojego zestawu testowego. Mam średnią wydajność dla obu klasyfikatorów (np. 0,81 AUC i 0,84 AUC) i chcę sprawdzić, czy różnica jest istotna statystycznie.
kostek
1
Nie powiedziałbym, że to, co robię, jest bliskie weryfikacji krzyżowej. W moim przypadku wartości funkcji zależą od podmiotu, który je udostępnia. Wiem, że AUC można wykorzystać do porównania modeli, ale chcę wiedzieć, czy w moim otoczeniu wynik mojego porównania jest statystycznie istotny. Jestem pewien, że da się to zrobić i że ma to sens. Moje pytanie brzmi: jak to zrobić?
kostek
3
Nie jestem pewien, do czego zmierza @Nishad, możesz i powinieneś użyć testu hipotez, aby ustalić, czy twoje modele różnią się znacznie od siebie. Standardowe odchylenia Twoich danych istnieją i stają się mniejsze wraz ze wzrostem wielkości próby (wszystkie inne rzeczy są równe). Różnica AUC między 0,8 a 0,9 może nie być znacząca, jeśli masz tylko 10 próbek, ale może być bardzo znacząca, jeśli masz 10M próbek. Nie widzę też żadnego związku z walidacją krzyżową. Głosowałbym w dół za komentarzami, gdybym mógł.
Nuclear Wang

Odpowiedzi:

11

Wojtek J. Krzanowski i David J. Hand Krzywe ROC dla danych ciągłych (2009) to świetne odniesienie do wszystkich rzeczy związanych z krzywymi ROC. Gromadzi razem szereg wyników w frustrująco szerokiej bazie literatury, która często wykorzystuje inną terminologię do omawiania tego samego tematu.

Ponadto książka ta zawiera komentarze i porównania metod alternatywnych, które zostały uzyskane w celu oszacowania tych samych wielkości, i wskazuje, że niektóre metody przyjmują założenia, które mogą być nie do utrzymania w określonych kontekstach. To jest jeden z takich kontekstów; inne odpowiedzi podają metodę Hanleya i McNeila, która zakłada dwumianowy model rozkładów wyników, co może być nieodpowiednie w przypadkach, w których rozkład wyników klas nie jest (zbliżony) do normy. Założenie normalnie rozłożonych wyników wydaje się szczególnie nieodpowiednie w nowoczesnych kontekstach , typowe powszechne modele, takie jak mają tendencję do tworzenia wyników z rozkładem „wanny” dla zadań klasyfikacyjnych (to znaczy rozkładów o dużej gęstości w skrajnościach bliskich 0 i 1 ).

Pytanie 1 - AUC

W sekcji 6.3 omówiono porównania AUC ROC dla dwóch krzywych ROC (str. 113–114). W szczególności rozumiem, że te dwa modele są ze sobą skorelowane, więc informacja o tym, jak obliczyć jest tutaj niezwykle ważna; w przeciwnym razie statystyki testowe będą tendencyjne, ponieważ nie uwzględniają udziału korelacji.r

W przypadku nieskorelowanych krzywych ROC, które nie są oparte na żadnych parametrycznych założeniach dystrybucyjnych, statystyki dla tets i przedziały ufności porównujące AUC mogą być bezpośrednio oparte na szacunkach i ^ AUC 2 wartości AUC oraz szacunkach ich odchyleń standardowych S 1 i S 2 , jak podano w sekcji 3.5.1:AUC^1AUC^2S1S2

Z=AUC^1AUC^2S12+S22

Aby rozszerzyć takie testy na przypadek, w którym te same dane są wykorzystywane dla obu klasyfikatorów, musimy wziąć pod uwagę korelację między szacunkami AUC:

z=AUC^1AUC^2S12+S22rS1S2

gdzie jest oszacowaniem tej korelacji. Hanley i McNeil (1983) wykonane takiego rozszerzenia, opierając swoją analizę na razie binormal, ale tylko dał tabelę pokazującą jak obliczyć szacunkowy współczynnik korelacji R z korelacji r P dwóch klasyfikatorów do klasy P i korelację r n dwóch klasyfikatorów w klasie N, mówiąc, że wyprowadzenie matematyczne było dostępne na żądanie. Różni inni autorzy (np. Zou, 2001) opracowali testy w oparciu o model dwumianowy, zakładając, że można znaleźć odpowiednią transformację, która jednocześnie przekształci rozkłady wyników klas P i N do normalnych.rrrPrn

DeLong i wsp. (1988) wykorzystali tożsamość między AUC a statystyką testową Manna-Whitneya, wraz z wynikami teorii ogólnej statystyki według Sen (1960), aby uzyskać estiamte korelacji między AUC, które nie opiera się na dwumianowym założeniu. DeLong i wsp. (1988) przedstawili następujące wyniki porównań między k 2 klasyfikatorami.Uk2

W sekcji 3.5.1 pokazaliśmy, że powierzchnia pod empiryczną krzywą ROC była równa statystyce Manna-Whitneya i została podana przezU

gdziesPi,i=1,,nPsą wynikiem dlaobiektówklasyP,asNj,j=1,,nNsą wynikami dlaobiektyklasyNw próbce. Załóżmy, że mamykklasyfikatorów, dających wynikis r N j ,

AUC^=1nNnPi=1nNj=1nP[I(sPj>sNi)+12I(sPj=sNi)]
sPi,i=1,,nPPsNj,j=1,,nNNk i s r P i , j = 1 , , n P [Poprawiłem błąd indeksowania w tej części - Sycorax], i ^ A U C r , r = 1 , , k . DefiniowaćsNjr,j=1nNsPir,j=1,,nPAUC^r,r=1,,k

i V r 01 =1

V10r=1nNj=1nN[I(sPir>sNjr)+12I(sPir=sNjr)],i=1,,nP
V01r=1nPi=1nP[I(sPir>sNjr)+12I(sPir=sNjr)],j=1,,nN

następnie zdefiniuj macierz W 10 za pomocą ( r , s ) tego elementu w r , s 10 = 1k×kW10(r,s) imacierzk×kW01z(r,s)elementem w r

w10r,s=1nP1i=1nP[V10r(sPi)AUC^r][V10s(sPi)AUC^s]
k×kW01(r,s) Następnie estiamowana macierz kowariancji dla wektora( ^ A U C 1,, ^ A U C k
w01r,s=1nN1i=1nN[V01r(sNi)AUC^r][V01s(sNi)AUC^s]
szacowanych obszarów pod krzywymi wynosi W = 1(AUC^1,,AUC^k)z elementamiwr,s. Jest to uogólnienie wyniku dla szacowanej wariancji pojedynczego oszacowanego AUC, również podanego w sekcji 3.5.1. W przypadku dwóch klasyfikatorów oszacowaną korelacjęrpomiędzy szacowanymi AUCs podaje zatemw1,2
W=1nPW10+1nNW01
wr,sr które można zastosować wpunkcie zpowyżej.w1,2w1,1w2,2z

Ponieważ inne odpowiedzi podają wyrażenia Hanleya i McNeila dla estymatorów wariancji AUC, tutaj odtworzę estymator DeLong z p. 68:

Alternatywne podejście przedstawione przez DeLonga i in. (1988) i zilustrowane przez Pepe (2003) daje być może prostsze oszacowanie, i takie, które wprowadza dodatkową użyteczną koncepcję wartości umieszczenia. Wartość umieszczenia wyniku w odniesieniu do określonej populacji jest funkcją przetrwania tej populacji w s . Ta wartość umieszczenia dla sz populacji N wynosi 1 - F ( s ), a dla sz populacji P wynosi 1 - G ( s ) . Empiryczne oszacowania wartości umieszczenia są podane w oczywistych proporcjach. Zatem wartość umiejscowienia obserwacji s Nsss1F(s)s1G(s) w populacji P oznaczonejs P N i , to odsetek wartości próbki z P, który przekraczas N i , avar(s N P i )to wariancja wartości umiejscowienia każdej obserwacji z N w stosunku do populacji P. ..sNisNiPsNivar(sPiN)

Szacunek DeLong i wsp. (1988) wariancji podano w kategoriach tych wariancji: s 2 ( ^ A U C ) = 1AUC^

s2(AUC^)=1nPvar(sPiN)+1nNvar(sNiP)

Zauważ, że to funkcja rozkładu skumulowanego wyników w populacji N, a G to funkcja rozkładu skumulowanego wyników w populacji P. Standardowym sposobem oszacowania F i G jest użycie . Książka zawiera również alternatywne metody szacowania ekdf, takie jak szacowanie gęstości jądra, ale to nie jest objęte zakresem tej odpowiedzi.FGFG

Statystyki i z można uznać za standardowe odchylenia normalne, a testy statystyczne hipotezy zerowej przebiegają w zwykły sposób. (Zobacz także: )Zz

Jest to uproszczony, ogólny zarys działania testowania hipotez:

  • Testując, twoimi słowami, „czy jeden klasyfikator jest znacznie lepszy od drugiego”, można sformułować inaczej, testując hipotezę zerową, że oba modele mają statystycznie równe AUC względem alternatywnej hipotezy, że statystyki są nierówne.

  • To jest test dwustronny.

  • Odrzucamy hipotezę zerową, jeśli statystyka testowa znajduje się w obszarze krytycznym rozkładu odniesienia, który jest w tym przypadku standardowym rozkładem normalnym.

  • αz>1.96z<1.96α/21α/2

Pytanie 1 - Wrażliwość i swoistość

t

sensitivity=tp=P(sP>t)1specificity=fp=P(sN>t)

Głównym punktem spornym jest opracowanie odpowiedniego testu, biorąc pod uwagę, że dwie proporcje próbki będą skorelowane (ponieważ zastosowałeś dwa modele do tych samych danych testowych). Jest to adresowane na str. 111.

tpfpt(tp1tp2)/s12tpiis122tp1tp2

tp1tp2

N

tp1=tp2tp1tp2

Model 1 Positive at tModel 1 Negative at tModel 2 Positive at tabModel 2 Negative at tcd

a=i=1nPI(sPi1>t)I(sPi2>t)b=i=1nPI(sPi1t)I(sPi2>t)c=i=1nPI(sPi1>t)I(sPi2t)d=i=1nPI(sPi1t)I(sPi2t)

M=(bc)2b+c
χ12α=95%M>3.841459

sPirsNjr

pytanie 2

Wydaje się, że wystarczy scalić wyniki poprzez uśrednienie wartości prognozy dla każdego respondenta, tak że dla każdego modelu masz 1 wektor 100 uśrednionych wartości prognozowanych. Następnie jak zwykle oblicz AUC ROC, czułość i statystyki specyficzności, tak jakby oryginalne modele nie istniały. Odzwierciedla to strategię modelowania, która traktuje każdy z 5 modeli respondentów jako jeden z „komitetów” modeli, coś w rodzaju zespołu.

Sycorax mówi Przywróć Monikę
źródło
Dziękujemy za odpowiedź i podane referencje. Co z wartościami p dla czułości i swoistości?
kostek
Czy w przypadku pierwszego kwartału oznacza to, że nie ma różnicy między obliczaniem wartości p dla czułości i swoistości oraz że oba mają zawsze tę samą wartość p, a ja po prostu tworzę tabelę zdarzeń i przeprowadzam na niej test McNemara?
kostek
Nie, zrobiłbyś jeden test dla każdego.
Sycorax mówi Przywróć Monikę
a,b,c,d
@Drey Nie mają proporcji; oni się liczą. Wyrażam to wyraźnie w wersji.
Sycorax mówi Przywróć Monikę
2

Pozwól, że udzielę krótkiej odpowiedzi, ponieważ ten przewodnik wyjaśnia znacznie więcej i lepiej .

nTPnTN

SEA=A(1A)+(nTP1)(Q1A2)+(nTN1)(Q2A2)nTPnTN

Q1=A/(2A)Q2=2A2/(1+A)

Aby porównać dwa AUC, musisz obliczyć SE dla obu przy użyciu:

SEA1A2=(SEA1)2+(SEA2)22r(SEA1)(SEA2)

rr=0

z

z=(A1A2)/SEA1A2

Stamtąd można obliczyć wartość p przy użyciu gęstości prawdopodobieństwa standardowego rozkładu normalnego. Lub po prostu użyj tego kalkulatora.

Mam nadzieję, że to odpowiada na pytanie 1 . - przynajmniej część porównująca AUC. Sens / Spec jest już w jakiś sposób objęty ROC / AUC. W przeciwnym razie odpowiedź, jak sądzę, leży w pytaniu 2.

Co do pytania 2 , centralne twierdzenie graniczne mówi nam, że twoja statystyka podsumowująca byłaby zgodna z rozkładem normalnym. Dlatego sądzę, że wystarczyłby prosty test t (5 miar jednego klasyfikatora na 5 miar drugiego klasyfikatora, gdzie miarami mogłyby być AUC, sens, spec)

SE2r

Dziupla
źródło
Dzięki za dostarczone linki. W przypadku pytania 1, jeśli ustawię A na czułość lub swoistość, czy równania dla SE i Z-score będą się utrzymywać?
kostek
p^
0

Na pytanie 1 @Sycorax udzielił wyczerpującej odpowiedzi.

W przypadku pytania 2, o ile mi wiadomo, uśrednianie prognoz z badanych jest nieprawidłowe. Zdecydowałem się użyć ładowania początkowego do obliczenia wartości p i porównania modeli.

W takim przypadku procedura jest następująca:

For N iterations:
  sample 5 subjects with replacement
  sample 100 test cases with replacement
  compute mean performance of sampled subjects on sampled cases for model M1
  compute mean performance of sampled subjects on sampled cases for model M2
  take the difference of mean performance between M1 and M2
p-value equals to the proportion of differences smaller or equal than 0

Ta procedura wykonuje jednostronny test i zakłada, że ​​średnia wydajność M1> średnia wydajność M2.

W tym repozytorium GitHub można znaleźć implementację ładowania początkowego Pythona do obliczania wartości p porównujących wiele czytników: https://github.com/mateuszbuda/ml-stat-util

kostek
źródło