ROC ve multiROC analizi: optimal kesme noktası nasıl hesaplanır?


14

Ben bir ROC eğrisi (hassasiyet ve özgüllük en üst düzeye çıkarıldığı değeri) için en uygun kesme noktası hesaplamak anlamaya çalışıyorum. aSAHPaketten veri kümesini kullanıyorum pROC.

outcomeDeğişken iki bağımsız değişkenler tarafından açıklanabilir: s100bve ndka. EpiPaketin sözdizimini kullanarak iki model oluşturdum:

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

Çıktı aşağıdaki iki grafikte gösterilmektedir:

resim açıklamasını buraya girin resim açıklamasını buraya girin

İlk grafikte ( s100b), fonksiyon optimum kesme noktasının karşılık gelen değerde lokalize olduğunu söyler lr.eta=0.304. İkinci grafikte ( ndka) en uygun kesme noktası, karşılık gelen değerde lr.eta=0.335(anlamı nedir) yerelleştirilir lr.eta. İlk sorum:

  • belirtilen değerler için karşılık gelen s100bve ndkadeğerler lr.etanedir ( s100bve açısından en uygun kesme noktası ndkanedir)?

İKİNCİ SORU:

Şimdi her iki değişkeni de dikkate alarak bir model oluşturduğumu varsayalım:

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

Elde edilen grafik:

resim açıklamasını buraya girin

Fonksiyon tarafından hassasiyetin ve özgüllüğün en üst düzeye çıktığı ndkaVE değerlerinin ne olduğunu bilmek istiyorum s100b. Başka bir deyişle: değerleri ne ndkave s100bhangi selenyum =% 68.3 ve Sp =% 76.4 (grafiğinden türetilen değerler) var mı?

Sanırım bu ikinci soru multiROC analizi ile ilgili, ancak Epipaketin dokümantasyonu , modelde kullanılan her iki değişken için en uygun kesme noktasının nasıl hesaplanacağını açıklamıyor .

Sorum kısaca söyleyen reasearchGate'den bu soruya çok benziyor :

Bir tedbirin duyarlılığı ve özgüllüğü arasında daha iyi bir dengeyi temsil eden kesme puanının belirlenmesi basittir. Bununla birlikte, çok değişkenli ROC eğrisi analizi için, araştırmacıların çoğunun, AUC açısından birkaç göstergenin (değişkenlerin) doğrusal bir kombinasyonunun genel doğruluğunu belirlemek için algoritmalara odaklandığını belirttim. [...]

Bununla birlikte, bu yöntemler, en iyi teşhis doğruluğunu veren çoklu göstergelerle ilişkili kesme puanlarının bir kombinasyonuna nasıl karar verileceğinden bahsetmez.

Olası bir çözüm, makalesinde Shultz tarafından önerilen çözümdür , ancak bu makaleden, çok değişkenli bir ROC eğrisi için optimum kesme noktasının nasıl hesaplanacağını anlayamıyorum.

Belki de Epipaketin çözümü ideal değildir, bu nedenle diğer yararlı bağlantılar takdir edilecektir.

Yanıtlar:


10

Frank Harrell'ın cevabını detaylandırmak için, Epipaketin yaptığı şey lojistik regresyona uymak ve aşağıdaki formun sonuç tahminleriyle bir ROC eğrisi yapmaktı:

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

Sizin durumunuzda, takılan değerler (kesme ) = -2.379, (s100b) = 5.334 ve (ndka) = 0.031'dir. Tahmin edilen sonucunuzun 0.312 ("optimal" kesme) olmasını istediğinizden, bunu bunun yerine değiştirebilirsiniz (umarım burada hataları tanıtmadım):β0β1β2

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

Bu eşitliği sağlayan herhangi bir (s100b, ndka) değer "optimal" dir. Sana kötü şans, bu çiftlerin sonsuzluğu var. Örneğin, (0.29, 1), (0, 51.2), vb. Daha da kötüsü, çoğu mantıklı değil. Çift (-580, 10000) ne anlama geliyor? Hiçbir şey değil!

Başka bir deyişle, girdiler üzerinde kesinti oluşturamazsınız - bunu çıktılarda yapmanız gerekir ve bu da modelin bütün noktasıdır.


8

Girdi değişkenleri üzerinde kesme yapmak değil, sadece çıktıda (örneğin, çok değişkenli bir modelden tahmin edilen risk) kesim yapmak uygun değildir. Çünkü x1 için kesim x2'nin sürekli değerine bağlı olacaktır. Ve optimum kararlar almak için üzerinde bir kesme noktası aramak , bir fayda / kayıp / maliyet fonksiyonu gerektirir ve bunun ROC eğrileriyle ilgisi yoktur.Y^


Açıkladığınız sorunu anlıyorum. Bu arada, belirli bir durumu (hastalık / sonuç / vb.) Tanımlama Sens ve Spesifikasyonunu arttırmak için paralel olarak iki (veya daha fazla) test için kesme noktalarını hesaplamak için bir yöntem olup olmadığını merak ediyorum. ). Şimdiden teşekkürler.
Tommaso

1
X1 için "optimum" kesme noktası x2'nin sürekli değerine bağlı olacağından ve x2 için "optimum" kesme noktası x1'in sürekli değerine bağlı olacağından, bunu yapmanın ve felaket.
Frank Harrell

Duyarlılık ve Özgüllüğü en üst düzeye çıkarmak için iki veya daha fazla test için kesme noktası bulmanın bir yolu yok mu? Tabii ki multiROC analizi olmayan bir yöntem. Tekrar teşekkürler.
Tommaso

2
Girdiler üzerinde kesim aramak uygun değildir. Optimum kararlar hiç kesim yapılmadan veya karar süresinden önce gerekirse tahmin edilen olasılıklar üzerinde kesim yapılarak verilir. Tahmini risk üzerinde optimum kesintiyi çözmek için kamu hizmetleri (kayıp / maliyet) gereklidir.
Frank Harrell

1
ROC eğrilerinin bu hedefe ulaşmakla hiçbir ilgisi yoktur. Bunu yapmak için SCr'yi sonuçla ilişkilendirmeniz veya normal bir popülasyondakinden daha aşırı bir SCr alma olasılığını hesaplamanız gerekir.
Frank Harrell

3

bunun için yaygın olarak kullanılan bir sembol olduğu için lr.eta, takılan modelden doğrusal öngörücü - logit - olduğunu tahmin ediyorum ; veya değilse, takılan modelden olasılık. (Sonuncu olduğu anlaşılıyor: bkz. Https://stackoverflow.com/a/38532555/1864816 .) Kodu kontrol edebilirsiniz . Her durumda, herhangi bir sayıda öngörücü için model katsayılarından hesaplayabilirsiniz. (Her bir öngörücü için ayrı ayrı bir kesme olmayacağını, ancak tüm öngörücülerin bir işlevi olduğunu unutmayın.)ηROC

İlk cümleniz (grafikler tarafından kanıtlandığı gibi) hassasiyet ve özgüllük toplamının en üst düzeye çıkarıldığı yeri aradığınızı söylemelidir . Peki bu neden "optimal"? Yanlış pozitif sonuç yanlış negatif sonuçla aynı içe aktarmaya sahip mi? Buraya bakın .


Doğru, takılan modelden (bir bağımsız değişken için) kesme noktasını veya daha sonra bulduğum gibi alternatif olarak paketin coordsfonksiyonunu kullanarak hesaplayabilirim pROC. En iyi kesme noktası, benim durumumda, Sens ve Spec'in en iyi kombinasyonuydu; Bağlantılı cevabı okudum, ancak (en azından şimdilik) yanlış pozitif ve yanlış negatif sonuçları umursamıyorum, çünkü (iyi anladıysam) araştırma için toplanan bir grup veriyi analiz ediyorum.
Tommaso

Ne yapmak hakkında daha sonra bakım? Sonuçların dikkate alınmasını gerektirmeyen kesme ile ne yapıyorsunuz? Ve sonra 'optimal' veya 'en iyi' ne için ?
Scortchi - Monica'yı eski durumuna döndürün

Tommaso "optimal" i "duyarlılık ve özgüllüğün maksimize edildiği değer" (sorunun ilk cümlesinden alıntı) olarak tanımladı, dolaylı olarak max (hassasiyet + özgüllük) anlamına geliyor. Bir anlam ifade edip etmediği (ve okuduğumda umursamıyorsa, düşünmediğini düşünüyorum) başka bir soru.
Calimo

1
Bu yaklaşım karar verme ile çelişmektedir.
Frank Harrell

1
Ben doğru yazınızı okuyorum eğer düşünüyorum lr.etaolduğunu tam olarak donatılmış modelden olasılık: İkinci sen bahsedince seçenek . Bir dakikanız varsa buna göz atın . E[Yi|Xi]=11+e(β0+β1×s100b)
Antoni Parellada

0

Gerçek pozitif oranın (tpr) gerçek negatif oranla (tnr) kesiştiği eşiği bulabilirsiniz, bu yanlış pozitif ve yanlış negatiflerin toplamının minimum olduğu nokta olacaktır.


Tek cümlelik bir cevap genellikle biçimimiz için biraz kısa olarak kabul edilir. Cevabınızı, minimumun nerede olması gerektiğini bildiğinizin kısa bir açıklamasını içerecek şekilde genişletebilir misiniz?
Glen_b

1
Böyle bir strateji optimum karar verme karşısında uçar.
Frank Harrell
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.