Analisis ROC dan multiROC: bagaimana cara menghitung cutpoint optimal?


14

Saya mencoba memahami cara menghitung titik potong optimal untuk kurva ROC (nilai di mana sensitivitas dan spesifisitas dimaksimalkan). Saya menggunakan dataset aSAHdari paket pROC.

The outcomevariabel dapat dijelaskan oleh dua variabel independen: s100bdan ndka. Menggunakan sintaks Epipaket, saya telah membuat dua model:

library(pROC)
library(Epi)
ROC(form=outcome~s100b, data=aSAH)
ROC(form=outcome~ndka, data=aSAH)

Output diilustrasikan dalam dua grafik berikut:

masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini

Dalam grafik pertama ( s100b), fungsi mengatakan bahwa titik potong optimal dilokalkan pada nilai yang sesuai lr.eta=0.304. Dalam grafik kedua ( ndka) titik potong optimal dilokalkan pada nilai yang sesuai dengan lr.eta=0.335(apa artinya lr.eta). Pertanyaan pertama saya adalah:

  • apa yang sesuai s100bdan ndkanilai untuk lr.etanilai yang ditunjukkan (apa titik potong optimal dalam hal s100bdan ndka)?

PERTANYAAN KEDUA:

Sekarang anggaplah saya membuat model dengan mempertimbangkan kedua variabel:

ROC(form=outcome~ndka+s100b, data=aSAH)

Grafik yang diperoleh adalah:

masukkan deskripsi gambar di sini

Saya ingin tahu apa nilai-nilai ndkaAND s100bdi mana sensibilitas dan spesifisitas dimaksimalkan oleh fungsi. Dalam istilah lain: apa saja nilai ndkadan s100bdi mana kita memiliki Se = 68,3% dan Sp = 76,4% (nilai yang diturunkan dari grafik)?

Saya kira pertanyaan kedua ini terkait dengan analisis multiROC, tetapi dokumentasi Epipaket tidak menjelaskan bagaimana menghitung cutpoint optimal untuk kedua variabel yang digunakan dalam model.

Pertanyaan saya muncul sangat mirip dengan pertanyaan ini dari reasearchGate , yang mengatakan singkatnya:

Penentuan skor cut-off yang mewakili trade-off yang lebih baik antara sensitivitas dan spesifisitas ukuran sangat mudah. Namun, untuk analisis kurva ROC multivariat, saya telah mencatat bahwa sebagian besar peneliti telah berfokus pada algoritma untuk menentukan akurasi keseluruhan kombinasi linear dari beberapa indikator (variabel) dalam hal AUC. [...]

Namun, metode ini tidak menyebutkan cara memutuskan kombinasi skor cut-off yang terkait dengan berbagai indikator yang memberikan akurasi diagnostik terbaik.

Solusi yang mungkin adalah yang diusulkan oleh Shultz dalam makalahnya , tetapi dari artikel ini saya tidak dapat memahami bagaimana menghitung titik potong yang optimal untuk kurva ROC multivarian.

Mungkin solusi dari Epipaket tidak ideal, jadi tautan bermanfaat lainnya akan dihargai.

Jawaban:


9

Untuk menguraikan jawaban Frank Harrell, apa yang dilakukan Epipaket itu adalah agar sesuai dengan regresi logistik, dan membuat kurva ROC dengan prediksi hasil dari bentuk berikut:

outcome=11+e(β0+β1s100b+β2ndka)

β0β1β2

0.312=11+e(2.379+5.334s100b+0.031ndka)
1.588214=5.334s100b+0.031ndka
s100b=1.5882140.031ndka5.334

Setiap pasangan nilai (s100b, ndka) yang memenuhi persamaan ini adalah "optimal". Nasib buruk untuk Anda, ada tak terhingga dari pasangan ini. Misalnya, (0.29, 1), (0, 51.2), dll. Lebih buruk lagi, kebanyakan dari mereka tidak masuk akal. Apa artinya pasangan (-580, 10000)? Tidak ada!

Dengan kata lain, Anda tidak dapat membuat cut-off pada input - Anda harus melakukannya pada output, dan itulah inti dari model.


8

Y^


Saya mengerti masalah yang Anda jelaskan. Omong-omong, saya bertanya-tanya, apakah ada metode untuk menghitung cut-off point untuk dua (atau lebih) tes secara paralel, untuk meningkatkan Sens dan Spec mengidentifikasi status tertentu (penyakit / hasil / dll. ). Terima kasih sebelumnya.
Tommaso

1
Karena cutpoint "optimal" untuk x1 akan bergantung pada nilai kontinu x2, dan cutpoint "optimal" untuk x2 akan bergantung pada nilai kontinu x1, tidak ada cara untuk melakukan ini dan menyimpan cukup informasi untuk menjadikannya bukan bencana.
Frank Harrell

Jadi tidak ada cara untuk menemukan titik cut-off untuk dua tes atau lebih, untuk memaksimalkan Sensibilitas dan Spesifisitas? Tentu saja metode yang bukan merupakan analisis multiROC. Terima kasih lagi.
Tommaso

2
Sama sekali tidak tepat untuk mencari cutoff pada input. Keputusan optimal dibuat tanpa menggunakan cutoff sama sekali, atau, jika diperlukan sebelum waktu keputusan, dengan membuat cutoff pada probabilitas yang diprediksi. Utilitas (kerugian / biaya) diperlukan untuk menyelesaikan cutoff optimal pada risiko yang diperkirakan.
Frank Harrell

1
Kurva ROC tidak ada hubungannya dengan memenuhi tujuan itu. Untuk melakukan itu, Anda harus menghubungkan SCr dengan hasil, atau hanya menghitung kemungkinan mendapatkan SCr yang lebih ekstrem daripada itu dalam populasi normal.
Frank Harrell

3

lr.etaηROC

Kalimat pertama Anda harus mengatakan (sebagaimana dibuktikan oleh grafik) bahwa Anda mencari di mana jumlah sensitivitas & spesifisitas dimaksimalkan. Tetapi mengapa ini "optimal"? Apakah hasil positif palsu memiliki impor yang sama dengan hasil negatif palsu? Lihat di sini .


Itu benar, saya dapat menghitung titik cut-off dari model yang dipasang (untuk satu variabel independen), atau sebagai alternatif menggunakan coordsfungsi dari pROCpaket, seperti yang saya temukan nanti. Titik potong optimal, dalam kasus saya, kombinasi terbaik dari Sens dan Spec; Saya membaca jawaban yang tertaut, tetapi saya tidak peduli (setidaknya untuk sekarang) tentang hasil positif palsu dan negatif palsu, karena (jika saya mengerti dengan baik) saya menganalisis sekelompok data yang dikumpulkan untuk penelitian.
Tommaso

Apa yang Anda pedulikan saat itu? Apa yang Anda lakukan dengan cut-off yang tidak memerlukan pertimbangan konsekuensi? Dan kemudian apa itu 'optimal' atau 'terbaik' untuk ?
Scortchi

Tommaso mendefinisikan "optimal" sebagai "nilai di mana sensitivitas dan spesifisitas dimaksimalkan" (mengutip kalimat pertama dari pertanyaan), secara implisit berarti max (sensitivitas + spesifisitas). Apakah masuk akal atau tidak (dan ketika saya membaca dia tidak peduli, saya cenderung berpikir itu tidak) adalah pertanyaan lain.
Calimo

1
Pendekatan ini bertentangan dengan pengambilan keputusan.
Frank Harrell

1
lr.etaE[Yi|Xi]=11+e(β0+β1×s100b)

0

Anda dapat menemukan ambang di mana tingkat positif sejati (tpr) memotong tingkat negatif sejati (tnr) ini akan menjadi titik di mana jumlah positif palsu dan negatif palsu adalah minimum.


Jawaban satu kalimat biasanya dianggap sedikit pendek untuk format kami. Bisakah Anda memperluas jawaban Anda dengan memasukkan penjelasan singkat tentang bagaimana Anda tahu di situlah minimum harus?
Glen_b -Reinstate Monica

1
Strategi seperti itu terbang di hadapan pengambilan keputusan yang optimal.
Frank Harrell
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.