Test per proporzioni e classificatore binario


10

Ho una macchina prototipo che produce parti.

In un primo test la macchina produce parti e un classificatore binario mi dice che parti sono difettose ( , in genere e ) e le parti sono buone.N1d 1 < N 1 d 1 / N 1 < 0,01 N 110 4 N 1 - d 1d1d1<N1d1/N1<0.01N1104N1d1

Quindi un tecnico apporta alcune modifiche alla macchina per ridurre il numero di parti difettose.

In un secondo e successivo test la macchina modificata produce parti e lo stesso classificatore binario (intatto) mi dice che parti sono difettose, comunque è abbastanza simile a .d 2 d 2 / N 2 d 1 / N 1N2d2d2/N2d1/N1

Il tecnico vorrebbe sapere se le sue modifiche sono efficaci.

Supponendo che i classificatori siano perfetti (la sua sensibilità è del 100% e la sua specificità è del 100%), posso eseguire un test per le proporzioni (con R, scrivo solo prop.test(c(d1,d2),c(N1,N2))).

Ma il classificatore non è perfetto, quindi come posso prendere in considerazione la sensibilità e la specificità, entrambe sconosciute, del classificatore per rispondere correttamente al tecnico?


Potete confermare il tasso di accuratezza del classificatore?
Michelle

@Michelle So senza errori e ma non so quante parti difettose sono classificate erroneamente come buone. d 2d1d2
Alessandro Jacopson,

Ciao di nuovo. Puoi fare un campione casuale delle parti buone da N1 e N2, separatamente, per stimare il tasso di falsi positivi?
Michelle

1
Con queste informazioni, puoi utilizzare questo metodo per confrontare le modifiche? onlinelibrary.wiley.com/doi/10.1002/sim.906/abstract vedi anche qui ncbi.nlm.nih.gov/pubmed/18224558 e altre idee qui, testo completo: stat.colostate.edu/~bradb/papers/lrgraphfinal. pdf
Michelle

2
(+1) questa è un'ottima domanda!
Steffen,

Risposte:


4

Quindi sto derivando questo dai primi principi, e quindi non sono sicuro che sia corretto. Ecco i miei pensieri:

EDIT: Questo non era proprio prima. L'ho aggiornato.

  1. Lasciamo che indichi la differenza prevista tra il numero effettivo di veri positivi e il numero dal classificatore binario che chiameremo . Puoi misurarlo eseguendo il tuo classificatore su un set con etichette conosciute. Sottrai il numero di positivi effettivi dal numero di positivi prodotti dal classificatore, quindi dividi per per ottenere .d 1 ^ d 1 N ααd1d1^Nα

  2. Pertanto, una stima puntuale per il rapporto effettivo delle parti difettose è data da: . Cioè, il numero osservato di parti difettose, meno il numero previsto di falsi positivi, oltre al numero previsto di falsi negativi.d1N1^=d1+αN1N1

  3. Allo stesso modo,d2N2^=d2+αN2N2

  4. Quindi, ora facciamo un test prop. Nel test prop standard, calcoliamo innanzitutto il rapporto in pool utilizzato come valore null: . Quindi qui, inseriamo le nostre stime puntuali di e per ottenere: ^ d 1p=p1N1+p2N2N1+N2 ^d2d1N1^ p=d1+d2+α(N1+N2)d2N2^p=d1+d2+α(N1+N2)N1+N2

  5. E poi l'errore standard è solo il solito:p(1p)(1N1+1N2)

  6. E la statistica del test è la stessa:z=d1N1d2N2se

Alcuni pensieri sull'interpretazione:

  • Il modello può produrre valori immaginari per errore standard. Questo accadrà quando , che sarà il caso in cui il numero di errori che prevediamo che i classificatori producano superi il numero che abbiamo osservato. Ad esempio, supponiamo che ci aspettiamo che il nostro classificatore produca una media di 5 positivi anche quando viene dato un campione che non contiene positivi. Se osserviamo 4 positivi, allora è come se non ci fosse alcun segnale: il nostro risultato è indistinguibile dal rumore prodotto dal classificatore. In questo caso, non dovremmo rifiutare l'ipotesi nulla, credo.p<0

  • Un altro modo di pensare a questo è che, se il numero di parti difettose rientra nel margine di errore per il classificatore, ovviamente non possiamo dire se c'è una differenza: non possiamo nemmeno dire se alcune parti sono difettose!

Incorporare errori nella stima di :α

  • Ci ho pensato un po 'di più e penso che ci siano molti modi per farlo, ma essenzialmente vuoi ottenere una stima della distribuzione di . Idealmente, dovresti fare questo acquisto ripetendo la procedura per ottenere la stima di su un campione rappresentativo dei set di dati su cui intendi utilizzare questo metodo. Se ciò non è possibile, è possibile eseguire il bootstrap su un singolo set di dati estraendo campioni da esso, anche se questo non è l'ideale a meno che il singolo set di dati non sia rappresentativo di tutti i set a cui tieni.ααα

Supponiamo di voler calcolare un intervallo di confidenza con una confidenza di .h

  • Calcola empiricamente l' intervallo di confidenza su usando la distribuzione bootstpped. Collega ogni end point al processo sopra, usandolo come una stima del punto (molto conservativa o molto liberale) per e trova l' intervallo di confidenza per la stima della differenza nelle proporzioni usando il test prop . Supponiamo di ottenere intervalli ( e come intervalli per i valori inferiore e superiore di . Quindi l'intervallo (che contiene entrambi gli intervalli precedenti) dovrebbe essere un (1-h) * 100% CI per la differenza nelle proporzioni ... Penso ... ααhh2αα lowl,lowr)(highl,highr)α(highl,lowr)h2lowl,lowr)(highl,highr)α(highl,lowr)

Nota: in precedenza ho assunto un test su un lato. Dividi h per 2 per tenere conto del fatto che stai testando due ipotesi indipendenti ( è nell'intervallo che pensi e la statistica del test è una differenza significativa). Se vuoi fare un test a due code, dividi invece per 4.α


+1, grazie. In 6 hai scritto "statico", volevi dire "statistico"?
Alessandro Jacopson,

p<00<p<10<p<1

Nel tuo secondo bullett point, hai scritto della "varianza", cosa intendi? La mia comprensione è la seguente: diciamo che prendo un campione di dimensioni dai buoni del primo test e ho trovato 7 parti difettose, quindi se presumo Ignorerò qualsiasi variazione nella . D'altra parte posso ottenere un intervallo di confidenza per (ad esempio con R ) e quindi incorporarlo nel modello. Ho ragione? β = 70.01(N1d1)100 βββ=7100ββprop.test(7,100)
Alessandro Jacopson,

@uvts_cvs Sì, dovrebbe essere "statistico". Lo riparerò tra un momento. C'è anche un refuso nel calcolo per l'errore standard, che dovrebbe invece essere p * (1-p). P dovrebbe sempre essere <1, tranne forse se il tuo classificatore è veramente cattivo e d è grande. Per il tuo terzo commento, sì, questa è l'idea. Non sono sicuro di come incorporare quella stima nel modello. Forse qualcun altro qui lo sa?
John Doucette,

Grazie per aver accettato, ma dalla scorsa notte ci ho pensato un po 'di più (ottima domanda a proposito!), E ho alcune idee su come incorporare la varianza. Inoltre, mi sono reso conto che questo modello non è del tutto giusto. È necessario moltiplicare per il numero di esempi negativi e per il numero di esempi positivi . Lo esaminerò e lo aggiornerò più avanti. βαβ
John Doucette,
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.