Significato statistico (valore p) per il confronto di due classificatori rispetto all'AUC (media) ROC, sensibilità e specificità


14

Ho un set di test di 100 casi e due classificatori.

Ho generato previsioni e calcolato AUC ROC, sensibilità e specificità per entrambi i classificatori.

Domanda 1: Come posso calcolare il valore p per verificare se uno è significativamente migliore dell'altro rispetto a tutti i punteggi (ROC AUC, sensibilità, specificità)?


Ora, per lo stesso set di test di 100 casi, ho assegnazioni di funzioni diverse e indipendenti per ciascun caso. Questo perché le mie funzionalità sono fisse ma soggettive e fornite da più (5) soggetti.

Quindi, ho valutato nuovamente i miei due classificatori per 5 "versioni" del mio set di test e ottenuto 5 AUC ROC, 5 sensibilità e 5 specificità per entrambi i classificatori. Quindi, ho calcolato la media di ciascuna misura di performance per 5 soggetti (AUC medio ROC, sensibilità media e specificità media) per entrambi i classificatori.

Domanda 2: Come posso calcolare il p-value per verificare se uno è significativamente migliore dell'altro rispetto ai punteggi medi (AUC medio, sensibilità media, specificità media)?


Le risposte con qualche esempio di pitone (preferibilmente) o codice MatLab sono più che benvenute.


Fai un confronto diretto tra precisione, accuratezza e AuC per ottenere il miglior classificatore tra i due. Il valore P non ha senso qui. Il valore p viene utilizzato nel contesto della valutazione se il modello sta facendo meglio di assegnazioni casuali / 50-50 (come test di ipotesi nullo / alternativo)
Nishad,

2
Innanzitutto, non sono d'accordo sul fatto che il confronto di due misure di prestazione usando il valore p non abbia senso qui. Vedo che un classificatore ha AUC 0.80 e l'altro 0.85. La mia ipotesi nulla sarebbe che non vi siano differenze nelle prestazioni di entrambi gli annunci. Voglio sapere se la differenza è statisticamente significativa.
kostek,

2
In secondo luogo, non realizzo 5 versioni del mio modello. Ho due modelli addestrati su un set di allenamento separato e ora li valuto su 5 diverse "versioni" del mio set di test. Ho una prestazione media per entrambi i classificatori (ad es. 0,81 AUC e 0,84 AUC) e voglio verificare se la differenza è statisticamente significativa.
kostek,

1
Non direi che quello che sto facendo è vicino alla cross validation. Nel mio caso, i valori delle funzionalità dipendono dall'argomento che le fornisce. So che l'AUC può essere utilizzata per confrontare i modelli, ma voglio sapere se, nella mia impostazione, il risultato del mio confronto è statisticamente significativo. Sono sicuro che può essere fatto e che ha molto senso farlo. La mia domanda è come farlo.
kostek,

3
Non sono sicuro di cosa stia arrivando @Nishad, puoi e dovresti usare un test di ipotesi per determinare se i tuoi modelli sono significativamente diversi l'uno dall'altro. Le deviazioni standard delle metriche esistono e diminuiscono all'aumentare della dimensione del campione (a parità di tutte le altre cose). Una differenza di AUC tra 0,8 e 0,9 potrebbe non essere significativa se si hanno solo 10 campioni, ma potrebbe essere molto significativa se si hanno 10 campioni. Non riesco a vedere alcuna relazione con la convalida incrociata. Voterei sottovalutare i commenti se potessi.
Nuclear Wang,

Risposte:


11

Wojtek J. Krzanowski e David J. Hand ROC Curves for Continuous Data (2009) è un ottimo riferimento per tutto ciò che riguarda le curve ROC. Raccoglie una serie di risultati in quella che è una base letteraria frustrantemente ampia, che spesso utilizza una terminologia diversa per discutere dello stesso argomento.

Inoltre, questo libro offre commenti e confronti di metodi alternativi che sono stati derivati ​​per stimare le stesse quantità, e sottolinea che alcuni metodi fanno ipotesi che potrebbero essere insostenibili in contesti particolari. Questo è uno di questi contesti; altre risposte riportano il metodo Hanley & McNeil, che assume il modello binormale per la distribuzione dei punteggi, che può essere inappropriato nei casi in cui la distribuzione dei punteggi delle classi non è (quasi) normale. L'assunzione di punteggi normalmente distribuiti sembra particolarmente inappropriata nei moderni contesti di , modelli comuni tipici come tendono a produrre punteggi con una distribuzione "vasca" per compiti di classificazione (vale a dire distribuzioni con densità elevate agli estremi vicino a 0 e 1 ).

Domanda 1 - AUC

La sezione 6.3 discute i confronti di AUC ROC per due curve ROC (pagg. 113-114). In particolare, la mia comprensione è che questi due modelli sono correlati, quindi le informazioni su come calcolare sono di fondamentale importanza qui; in caso contrario, la statistica del test sarà distorta perché non tiene conto del contributo della correlazione.r

Nel caso di curve ROC non correlate non basate su ipotesi distributive parametriche, le statistiche per tet e intervalli di confidenza che confrontano AUC possono essere basate direttamente su stime e dei valori AUC e stime delle loro deviazioni standard e , come indicato nella sezione 3.5.1:AUC^1AUC^2S1S2

Z=AUC^1AUC^2S12+S22

Per estendere tali test al caso in cui vengono utilizzati gli stessi dati per entrambi i classificatori, dobbiamo tenere conto della correlazione tra le stime dell'AUC:

z=AUC^1AUC^2S12+S22rS1S2

dove è la stima di questa correlazione. Hanley e McNeil (1983) hanno fatto una tale estensione, basando la loro analisi sul caso binormale, ma hanno fornito solo una tabella che mostra come calcolare il coefficiente di correlazione stimato r dalla correlazione r P dei due classificatori all'interno della classe P e la correlazione di r n dei due classificatori all'interno della classe N, dicendo che la derivazione matematica era disponibile su richiesta. Vari altri autori (ad es. Zou, 2001) hanno sviluppato test basati sul modello binormale, supponendo che sia possibile trovare una trasformazione appropriata che trasformi simultaneamente le distribuzioni dei punteggi delle classi P e N in normali.rrrPrn

DeLong et al (1988) hanno sfruttato l'identità tra AUC e la statistica dei test di Mann-Whitney, insieme ai risultati della teoria delle -statistics generalizzate dovute a Sen (1960), per ricavare una stima della correlazione tra le AUCs che non si basa sul presupposto binormale. In effetti, DeLong et al (1988) hanno presentato i seguenti risultati per confronti tra k 2 classificatori.Uk2

Nella Sezione 3.5.1, abbiamo mostrato che l'area sotto la curva empirica ROC era uguale alla statistica Mann-Whitney , ed era data daU

dovesPi,i=1,,nPsono i punteggi per glioggetti diclassePesNj,j=1,,nNsono i punteggi per glioggetti diclasseNnell'esempio. Supponiamo di averekclassificatori, dando punteggis r N j ,

AUC^=1nNnPi=1nNj=1nP[I(sPj>sNi)+12I(sPj=sNi)]
sPi,i=1,,nPPsNj,j=1,,nNNk e s r P i , j = 1 , , n P [Ho corretto un errore di indicizzazione in questa parte - Sycorax] e ^ A U C r , r = 1 , , k . DefiniresNjr,j=1nNsPir,j=1,,nPAUC^r,r=1,,k

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

k×kW10(r,s)

w10r,s=1nP1i=1nP[V10r(sPi)AUC^r][V10s(sPi)AUC^s]
k×kW01(r,s)
w01r,s=1nN1i=1nN[V01r(sNi)AUC^r][V01s(sNi)AUC^s]
(AUC^1,,AUC^k)
W=1nPW10+1nNW01
wr,srw1,2w1,1w2,2z

Poiché un'altra risposta fornisce le espressioni Hanley e McNeil per gli stimatori della varianza dell'AUC, qui riprodurrò lo stimatore DeLong da p. 68:

sss1F(s)s1G(s)sNisNiPsNivar(sPiN)

AUC^

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

FGFG

Zz

Questo è uno schema semplificato e di alto livello di come funziona il test delle ipotesi:

  • Testare, in parole tue, "se un classificatore è significativamente migliore dell'altro" può essere riformulato testando l'ipotesi nulla che i due modelli abbiano AUC statisticamente uguali contro l'ipotesi alternativa che le statistiche siano disuguali.

  • Questo è un test a due code.

  • Respingiamo l'ipotesi nulla se la statistica del test si trova nella regione critica della distribuzione di riferimento, che in questo caso è una distribuzione normale standard.

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

Domanda 1 - Sensibilità e specificità

t

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

Il principale punto critico è lo sviluppo del test appropriato dato che le due proporzioni del campione saranno correlate (poiché hai applicato due modelli agli stessi dati del test). Questo è affrontato a pag. 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

Domanda 2

Sembra che sia sufficiente unire i risultati facendo la media dei valori di previsione per ciascun intervistato, in modo che per ogni modello si abbia 1 vettore di 100 valori previsti medi. Quindi calcola le statistiche RUC AUC, sensibilità e specificità come al solito, come se i modelli originali non esistessero. Ciò riflette una strategia di modellizzazione che tratta ciascuno dei 5 modelli di intervistati come uno di un "comitato" di modelli, un po 'come un insieme.


Grazie per la risposta e riferimenti forniti. Che dire dei valori di p per sensibilità e specificità?
kostek,

Per Q1, significa che non esiste alcuna differenza tra il calcolo del valore p per la sensibilità e la specificità e che entrambi hanno sempre lo stesso valore p e io faccio semplicemente una tabella di contingenza ed eseguo il test McNemar su di esso?
kostek,

No, faresti un test per ciascuno.
Sycorax dice di reintegrare Monica il

a,b,c,d

@Drey Non sono proporzioni; sono conteggi. Lo esplicito in una revisione.
Sycorax dice di reintegrare Monica il

2

Lasciami breve la risposta, perché questa guida spiega molto di più e meglio .

nTPnTN

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

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

Per confrontare due AUC è necessario calcolare entrambi i SE usando:

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

rr=0

z

z=(A1A2)/SEA1A2

Da lì puoi calcolare il valore p usando la densità di probabilità di una distribuzione normale standard. O semplicemente usa questa calcolatrice.

Si spera che risponda alla domanda 1 . - almeno la parte che confronta gli AUC. Sens / Spec è già coperto in qualche modo da ROC / AUC. Altrimenti, la risposta che penso risiede nella domanda 2.

Per quanto riguarda la domanda 2 , il Teorema del limite centrale ci dice che la tua statistica riassuntiva avrebbe seguito una distribuzione normale. Quindi, penso che basterebbe un semplice test t (5 misure di un classificatore contro 5 misure del secondo classificatore in cui le misure potrebbero essere AUC, sens, spec)

SE2r


Grazie per i link forniti. Per la domanda 1, se imposto A come sensibilità o specificità, le equazioni per SE e il punteggio z rimarrebbero?
kostek,

p^

0

Per la domanda 1, @Sycorax ha fornito una risposta completa.

Per quanto riguarda la domanda 2, per quanto ne so, la media delle previsioni delle materie non è corretta. Ho deciso di utilizzare il bootstrap per calcolare i valori p e confrontare i modelli.

In questo caso, la procedura è la seguente:

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

Questa procedura esegue test con una coda e presuppone che prestazioni medie M1> prestazioni medie M2.

Un'implementazione Python del bootstrap per il calcolo di valori p che confronta più lettori è disponibile in questo repository GitHub: https://github.com/mateuszbuda/ml-stat-util

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.