Signifikansi statistik (nilai-p) untuk membandingkan dua pengklasifikasi sehubungan dengan (rata-rata) ROC AUC, sensitivitas dan spesifisitas

14

Saya memiliki satu set uji 100 kasus dan dua pengklasifikasi.

Saya menghasilkan prediksi dan menghitung ROC AUC, sensitivitas dan spesifisitas untuk kedua pengklasifikasi.

Pertanyaan 1: Bagaimana saya bisa menghitung nilai-p untuk memeriksa apakah satu secara signifikan lebih baik daripada yang lain sehubungan dengan semua skor (ROC AUC, sensitivitas, spesifisitas)?


Sekarang, untuk set uji yang sama dari 100 kasus, saya memiliki tugas fitur yang berbeda dan independen untuk setiap kasus. Ini karena fitur saya tetap tetapi subjektif dan disediakan oleh beberapa (5) subjek.

Jadi, saya mengevaluasi dua pengklasifikasi saya lagi untuk 5 "versi" dari set pengujian saya dan memperoleh 5 ROC AUCs, 5 sensitivitas dan 5 spesifisitas untuk kedua pengklasifikasi. Kemudian, saya menghitung rata-rata setiap ukuran kinerja untuk 5 subjek (rata-rata ROC AUC, sensitivitas rata-rata dan spesifisitas rata-rata) untuk kedua pengklasifikasi.

Pertanyaan 2: Bagaimana saya bisa menghitung nilai-p untuk memeriksa apakah ada yang secara signifikan lebih baik daripada yang lain sehubungan dengan skor rata-rata (rata-rata ROC AUC, sensitivitas rata-rata, spesifisitas rata-rata)?


Jawaban dengan beberapa contoh python (lebih disukai) atau kode MatLab lebih dari diterima.

kostek
sumber
Lakukan perbandingan langsung antara presisi, akurasi, AuC untuk mendapatkan klasifikasi terbaik di antara keduanya. Nilai P tidak masuk akal di sini. Nilai p digunakan dalam konteks evaluasi jika model melakukan lebih baik daripada penugasan acak / 50-50 (sebagai uji hipotesis nol / alternatif)
Nishad
2
Pertama, saya tidak setuju bahwa perbandingan dua ukuran kinerja menggunakan nilai-p tidak masuk akal di sini. Saya melihat bahwa satu classifier memiliki AUC 0,80 dan yang lainnya 0,85. Hipotesis nol saya adalah bahwa tidak ada perbedaan dalam kinerja kedua iklan baris. Saya ingin tahu apakah perbedaannya signifikan secara statistik.
kostek
2
Kedua, saya tidak membuat 5 versi model saya. Saya memiliki dua model yang dilatih pada set pelatihan terpisah dan sekarang saya mengevaluasinya pada 5 "versi" yang berbeda dari set tes saya. Saya memiliki kinerja rata-rata untuk kedua pengklasifikasi (misalnya 0,81 AUC dan 0,84 AUC) dan ingin memeriksa apakah perbedaannya signifikan secara statistik.
kostek
1
Saya tidak akan mengatakan bahwa apa yang saya lakukan dekat dengan validasi silang. Dalam kasus saya, nilai fitur tergantung pada subjek yang menyediakannya. Saya tahu bahwa AUC dapat digunakan untuk membandingkan model, tetapi saya ingin tahu apakah, dalam pengaturan saya, hasil perbandingan saya secara statistik signifikan. Saya yakin itu bisa dilakukan dan masuk akal untuk melakukannya. Pertanyaan saya adalah bagaimana melakukannya.
kostek
3
Saya tidak yakin apa yang dicapai oleh Nishad, Anda dapat dan harus menggunakan uji hipotesis untuk menentukan apakah model Anda berbeda secara signifikan satu sama lain. Penyimpangan standar metrik Anda memang ada, dan semakin kecil dengan bertambahnya ukuran sampel (semua hal lain dianggap sama). Perbedaan AUC antara 0,8 dan 0,9 mungkin tidak signifikan jika Anda hanya memiliki 10 sampel, tetapi mungkin sangat signifikan jika Anda memiliki 10 juta sampel. Saya gagal melihat hubungan apa pun untuk validasi silang. Akan memberi suara rendah pada komentar jika saya bisa.
Nuklir Wang

Jawaban:

11

Wojtek J. Krzanowski dan David J. Hand Kurva ROC untuk Data Berkelanjutan (2009) adalah referensi yang bagus untuk semua hal yang terkait dengan kurva ROC. Ia mengumpulkan sejumlah hasil dalam basis literatur yang sangat luas, yang sering menggunakan terminologi berbeda untuk membahas topik yang sama.

Selain itu, buku ini menawarkan komentar dan perbandingan metode alternatif yang telah diturunkan untuk memperkirakan jumlah yang sama, dan menunjukkan bahwa beberapa metode membuat asumsi yang mungkin tidak dapat dipertahankan dalam konteks tertentu. Ini adalah salah satu konteksnya; jawaban lain melaporkan metode Hanley & McNeil, yang mengasumsikan model binormal untuk distribusi skor, yang mungkin tidak sesuai dalam kasus di mana distribusi skor kelas tidak (mendekati) normal. Asumsi skor yang didistribusikan secara normal tampaknya sangat tidak sesuai dalam konteks modern , model umum yang umum seperti cenderung menghasilkan skor dengan distribusi "bathtub" untuk tugas-tugas klasifikasi (yaitu, distribusi dengan kepadatan tinggi pada ekstrem dekat 0 dan 1). ).

Pertanyaan 1 - AUC

Bagian 6.3 membahas perbandingan ROC AUC untuk dua kurva ROC (hal. 113-114). Secara khusus, pemahaman saya adalah bahwa kedua model ini berkorelasi, sehingga informasi tentang bagaimana menghitung sangat penting di sini; jika tidak, statistik pengujian Anda akan menjadi bias karena tidak memperhitungkan kontribusi korelasi.r

Untuk kasus kurva ROC tidak berkorelasi tidak didasarkan pada asumsi distribusi parametrik, statistik untuk tets dan interval kepercayaan membandingkan AUC dapat langsung berdasarkan estimasi dan ^ AUC 2 dari nilai-nilai AUC, dan perkiraan standar deviasi mereka S 1 dan S 2 , seperti yang diberikan pada bagian 3.5.1:AUC^1AUC^2S1S2

Z=AUC^1AUC^2S12+S22

Untuk memperluas pengujian tersebut ke kasus di mana data yang sama digunakan untuk kedua pengklasifikasi, kita perlu memperhitungkan korelasi antara perkiraan AUC:

z=AUC^1AUC^2S12+S22rS1S2

di mana adalah estimasi korelasi ini. Hanley dan McNeil (1983) membuat ekstensi seperti itu, mendasarkan analisis mereka pada kasus binormal, tetapi hanya memberikan tabel yang menunjukkan bagaimana menghitung estimasi koefisien korelasi r dari korelasi r P dari dua pengklasifikasi dalam kelas P, dan korelasi dari r n dari dua pengklasifikasi dalam kelas n, mengatakan bahwa derivasi matematika yang tersedia atas permintaan. Berbagai penulis lain (misalnya Zou, 2001) telah mengembangkan tes berdasarkan model binormal, dengan asumsi bahwa transformasi yang tepat dapat ditemukan yang secara bersamaan akan mengubah distribusi skor kelas P dan N menjadi normal.rrrPrn

DeLong et al (1988) mengambil keuntungan dari identitas antara AUC dan statistik uji Mann-Whitney, bersama dengan hasil dari teori -statistics umum karena Sen (1960), untuk memperoleh perkiraan korelasi antara AUCs yang tidak bergantung pada asumsi binormal. Bahkan, DeLong et al (1988) mempresentasikan hasil berikut untuk perbandingan antara k 2 pengklasifikasi.Uk2

Dalam Bagian 3.5.1, kami menunjukkan bahwa area di bawah kurva ROC empiris sama dengan statistik Mann-Whitney , dan diberikan olehU

manasPi,i=1,,nPadalah skor untuk objek kelasPdansNj,j=1,,nNadalah skor untuk objek kelasNdalam sampel. Misalkan kita memilikipengklasifikasik, menghasilkan skors r N j ,

AUC^=1nNnPi=1nNj=1nP[I(sPj>sNi)+12I(sPj=sNi)]
sPi,i=1,,nPPsNj,j=1,,nNNk dan s r P i , j = 1 , ... , n P [Saya memperbaiki kesalahan pengindeksan di bagian ini - Sycorax], dan ^ A U C r , r = 1 , ... , k . MenetapkansNjr,j=1nNsPir,j=1,,nPAUC^r,r=1,,k

dan 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

selanjutnya, menentukan matriks W 10 dengan ( r , s ) th unsur w r , s 10 = 1k×kW10(r,s) dank×kmatriksW01dengan(r,s)elemen w r

w10r,s=1nP1i=1nP[V10r(sPi)AUC^r][V10s(sPi)AUC^s]
k×kW01(r,s) Kemudian matriks kovarians terestimasi untuk vektor( ^ A U C 1,, ^ A U C k
w01r,s=1nN1i=1nN[V01r(sNi)AUC^r][V01s(sNi)AUC^s]
dari estimasi area di bawah kurva adalah W = 1(AUC^1,,AUC^k)dengan elemenwr,s. Ini adalah generalisasi dari hasil untuk estimasi varians dari AUC terestimasi tunggal, juga diberikan dalam bagian 3.5.1. Dalam kasus dua pengklasifikasi, korelasi estiamtedrantara AUCs diperkirakan demikian diberikan olehw1,2
W=1nPW10+1nNW01
wr,sr yang dapat digunakan dalamzdiatas.w1,2w1,1w2,2z

Karena jawaban lain memberikan ekspresi Hanley dan McNeil untuk penaksir varian AUC, di sini saya akan mereproduksi penaksir DeLong dari hal. 68:

Pendekatan alternatif karena DeLong et al (1988) dan dicontohkan oleh Pepe (2003) mungkin memberikan perkiraan yang lebih sederhana, dan yang memperkenalkan konsep ekstra berguna dari nilai penempatan. Nilai penempatan skor dengan mengacu pada populasi yang ditentukan adalah fungsi survivor populasi pada s . Ini nilai penempatan untuk s dalam populasi N adalah 1 - F ( s ) dan untuk s dalam populasi P adalah 1 - G ( s ) . Estimasi empiris dari nilai penempatan diberikan oleh proporsi yang jelas. Dengan demikian nilai penempatan pengamatan s Nsss1F(s)s1G(s) dalam populasi P dinotasikandengan P N i , adalah proporsi nilai sampel dari P yang melebihis N i , danvar(s N P i )adalah varian dari nilai penempatan masing-masing pengamatan dari N sehubungan dengan populasi P. ..sNisNiPsNivar(sPiN)

Estimasi DeLong et al (1988) tentang varians diberikan dalam hal varians ini: s 2 ( ^ A U C ) = 1AUC^

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

FGFG

Zz

Ini adalah garis besar tingkat tinggi yang disederhanakan tentang cara kerja pengujian hipotesis:

  • Pengujian, dalam kata-kata Anda, "apakah satu classifier secara signifikan lebih baik daripada yang lain" dapat diulangi sebagai pengujian hipotesis nol bahwa kedua model memiliki AUC yang secara statistik sama dengan hipotesis alternatif bahwa statistik tidak sama.

  • Ini adalah tes dua sisi.

  • Kami menolak hipotesis nol jika statistik pengujian berada di wilayah kritis dari distribusi referensi, yang merupakan distribusi normal standar dalam kasus ini.

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

Pertanyaan 1 - Sensitivitas dan Spesifisitas

t

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

Poin utama adalah mengembangkan tes yang tepat mengingat bahwa dua proporsi sampel akan dikorelasikan (karena Anda telah menerapkan dua model pada data tes yang sama). Ini ditujukan pada hal. 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

Pertanyaan 2

Tampaknya cukup untuk menggabungkan hasil dengan rata-rata nilai prediksi untuk setiap responden, sehingga untuk setiap model Anda memiliki 1 vektor dari 100 nilai prediksi rata-rata. Kemudian hitung statistik ROC AUC, sensitivitas dan spesifisitas seperti biasa, seolah-olah model aslinya tidak ada. Ini mencerminkan strategi pemodelan yang memperlakukan masing-masing model 5 responden sebagai salah satu "panitia" model, semacam ansambel.

Sycorax berkata Reinstate Monica
sumber
Terima kasih atas jawaban Anda dan referensi yang diberikan. Bagaimana dengan nilai-p untuk sensitivitas dan spesifisitas?
kostek
Untuk Q1, apakah itu berarti bahwa tidak ada perbedaan antara menghitung nilai-p untuk sensitivitas dan spesifisitas dan bahwa keduanya selalu memiliki nilai-p yang sama dan saya hanya membuat tabel kontingensi dan menjalankan tes McNemar di atasnya?
kostek
Tidak, Anda akan melakukan satu tes untuk masing-masing.
Sycorax berkata Reinstate Monica
a,b,c,d
@ Drey Mereka bukan proporsi; mereka diperhitungkan. Saya membuat ini eksplisit dalam revisi.
Sycorax berkata Reinstate Monica
2

Biarkan saya menjawab singkat, karena panduan ini menjelaskan lebih banyak dan lebih baik .

nTPnTN

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

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

Untuk membandingkan dua AUC, Anda perlu menghitung SE dari keduanya menggunakan:

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

rr=0

z

z=(A1A2)/SEA1A2

Dari sana Anda dapat menghitung nilai-p menggunakan kepadatan probabilitas dari distribusi normal standar. Atau cukup gunakan kalkulator ini.

Mudah-mudahan ini menjawab Pertanyaan 1 . - setidaknya bagian yang membandingkan AUC. Sens / Spec sudah dicakup oleh ROC / AUC dalam beberapa cara. Kalau tidak, jawabannya saya pikir terletak pada Pertanyaan 2.

Sedangkan untuk Pertanyaan 2 , Teorema Limit Pusat memberi tahu kami bahwa statistik ringkasan Anda akan mengikuti distribusi normal. Oleh karena itu, saya akan berpikir uji-t sederhana akan cukup (5 ukuran dari satu classifier terhadap 5 langkah dari classifier kedua di mana langkah-langkahnya bisa AUC, sens, spec)

SE2r

Sarang tupai
sumber
Terima kasih atas tautan yang diberikan. Untuk Pertanyaan 1, Jika saya menetapkan A menjadi sensitivitas atau spesifisitas, apakah persamaan untuk SE dan z-Score akan berlaku?
kostek
p^
0

Untuk Pertanyaan 1, @Sycorax memberikan jawaban yang komprehensif.

Untuk Pertanyaan 2, sejauh yang saya ketahui, rata-rata prediksi dari subjek tidak benar. Saya memutuskan untuk menggunakan bootstrap untuk menghitung nilai-p dan membandingkan model.

Dalam hal ini, prosedurnya adalah sebagai berikut:

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

Prosedur ini melakukan uji satu sisi dan mengasumsikan bahwa kinerja rata-rata M1> kinerja rata-rata M2.

Implementasi Python dari bootstrap untuk menghitung nilai-p yang membandingkan banyak pembaca dapat ditemukan di repo GitHub ini: https://github.com/mateuszbuda/ml-stat-util

kostek
sumber