Saya kesulitan menemukan cara untuk menghitung nilai-p untuk area di bawah karakteristik operator penerima (ROC). Saya memiliki variabel kontinu dan hasil tes diagnostik. Saya ingin melihat apakah AUROC signifikan secara statistik.
Saya menemukan banyak paket yang berhubungan dengan kurva ROC: pROC, ROCR, caTools, verifikasi, Epi. Tetapi bahkan setelah berjam-jam menghabiskan membaca dokumentasi dan pengujian, saya tidak dapat menemukan caranya. Saya pikir saya baru saja melewatkannya.
Jawaban:
Dalam situasi Anda, akan lebih baik untuk merencanakan kurva ROC, dan untuk menghitung area di bawah kurva itu, tetapi ini harus dianggap sebagai tambahan untuk analisis utama Anda, daripada analisis primer itu sendiri. Sebagai gantinya, Anda ingin mencocokkan model regresi logistik .
Model regresi logistik akan datang standar dengan tes model secara keseluruhan. (Sebenarnya, karena Anda hanya memiliki satu variabel, nilai-p itu akan sama dengan nilai-p untuk variabel hasil tes Anda.) Nilai-p itu adalah yang Anda kejar. Model ini akan memungkinkan Anda untuk menghitung probabilitas yang diprediksi dari pengamatan yang sedang sakit. Sebuah Karakteristik Receiver Operating memberitahu Anda bagaimana sensitivitas dan spesifisitas akan trade off, jika Anda menggunakan ambang batas yang berbeda untuk mengubah probabilitas diprediksi menjadi klasifikasi diprediksi. Karena probabilitas yang diprediksi akan menjadi fungsi variabel hasil tes Anda, ini juga memberi tahu Anda bagaimana mereka menukar jika Anda menggunakan nilai hasil tes yang berbeda sebagai ambang Anda.
Jika Anda tidak terlalu mengenal regresi logistik ada beberapa sumber yang tersedia di internet (selain halaman Wikipedia yang terhubung di atas):
R
, situs web bantuan statistik UCLA umumnya sangat baik dan memiliki halaman yang relevan di sini .sumber
summary(GLM.1)
harus memberi Anda apa yang Anda butuhkan, & saya pikiranova(GLM.1)
akan mengujinya terhadap model nol w / o Anda benar-benar harus cocok juga. Tapi cara Anda pasti akan berhasil, ya.Pada dasarnya Anda ingin menguji H0 = "AUC sama dengan 0,5".
Ini sebenarnya setara dengan mengatakan H0 = "Distribusi peringkat dalam dua kelompok adalah sama".
Yang terakhir adalah hipotesis nol dari uji Mann-Whitney (Wilcoxon) (lihat misalnya Gold, 1999 ).
Dengan kata lain, Anda dapat menggunakan tes Mann-Whitney-Wilcoxon dengan aman untuk menjawab pertanyaan Anda (lihat misalnya Mason & Graham, 2002 ). Inilah yang dilakukan oleh paket verifikasi yang disebutkan oleh Franck Dernoncourt.
sumber
Anda dapat menggunakan roc.area () dari verifikasi paket :
Itu akan kembali
$p.value [1] 0.0069930071
sumber
Dua kurva ROC dapat dibandingkan dalam penggunaan pROC
roc.test()
. Ini juga menghasilkan nilai-p. Selain itu, menggunakanroc(..., auc=TRUE, ci=TRUE)
akan memberi Anda interval kepercayaan yang lebih rendah dan lebih tinggi bersama dengan AUC dalam output sambil membuat objek ROC, yang mungkin berguna.Berikut ini adalah contoh kode yang berfungsi yang menguji apakah mil per galon atau berat mobil merupakan prediktor yang lebih baik untuk jenis transmisi yang dilengkapi (otomatis atau manual):
Bobotnya adalah prediktor yang jauh lebih baik daripada konsumsi bahan bakar, tampaknya. Namun, ini membandingkan dua kurva, dan bukan kurva tunggal terhadap angka seperti 0,5. Melihat interval kepercayaan untuk melihat apakah itu berisi angka 0,5 memberitahu kita apakah itu berbeda secara signifikan, tetapi tidak menghasilkan nilai p.
sumber