Cox orantılı tehlikeler modeli ile çapraz doğrulama nasıl yapılır?


15

Bir veri kümesinde (model oluşturma veri kümesi) belirli bir hastalığın ortaya çıkması için bir tahmin modeli oluşturduğumu ve şimdi modelin yeni bir veri kümesinde (doğrulama veri seti) ne kadar iyi çalıştığını kontrol etmek istediğimizi varsayalım. Lojistik regresyon ile oluşturulan bir model için, model oluşturma veri kümesinden elde edilen model katsayılarına dayalı olarak doğrulama veri kümesindeki her bir kişi için tahmini olasılığı hesaplar ve daha sonra, bu olasılıkları bir kesme değerinde ikiye ayırdıktan sonra, 2x2 tablo oluşturabilirim gerçek pozitif oranı (duyarlılık) ve gerçek negatif oranı (özgüllük) hesaplamama olanak tanır. Ayrıca, kesmeyi değiştirerek tüm ROC eğrisini oluşturabilir ve daha sonra ROC grafiği için AUC elde edebilirim.

Şimdi farz edelim ki hayatta kalma verilerim var. Bu yüzden, model oluşturma veri kümesinde bir Cox orantılı tehlike modeli kullandım ve şimdi modelin doğrulama veri kümesinde ne kadar iyi çalıştığını kontrol etmek istiyorum. Temel risk Cox modellerinde parametrik bir fonksiyon olmadığından, model oluşturma veri kümesinde elde edilen model katsayılarına dayalı olarak doğrulama veri setindeki her bir kişi için tahmini hayatta kalma olasılığını nasıl elde edebileceğimi görmüyorum. Peki, modelin doğrulama veri kümesinde ne kadar iyi çalıştığını nasıl kontrol edebilirim? Bunu yapmak için yerleşik yöntemler var mı? Ve eğer evet ise, herhangi bir yazılıma uygulanıyorlar mı? Önerileriniz için şimdiden teşekkür ederiz!

Yanıtlar:


9

Genelleştirilmiş ROC alanı (hiç bir ikiye ayrılma gerektirmeyen c-endeksi) olmasına rağmen, bir ROC eğrisi bu ayarda yararlı değildir. R rmspaketi, c-endeksini ve çapraz doğrulanmış veya önyükleme aşırı düzeltme düzeltilmiş sürümlerini hesaplayacaktır. Modeli tam olarak önceden belirtirseniz veya her yeniden örneklemede geriye doğru adım adım algoritmasını tekrarlarsanız bunu herhangi bir veriyi geri tutmadan yapabilirsiniz. Gerçekten harici doğrulama yapmak istiyorsanız, yani doğrulama örneğiniz çok büyükse, aşağıdaki rmsişlevleri kullanabilirsiniz : rcorr.cens, val.surv.


Cevap için teşekkür ederim. Bu ortamda bir ROC eğrisinin neden yararlı olmadığını açıklayabilir misiniz? Böyle bir yaklaşımın kullanıldığı bazı önemli uygulamalar gördüm (örn. Hippisley-Cox ve diğerleri (2007) İngiltere için yeni bir kardiyovasküler hastalık risk puanı olan QRISK'in türetilmesi ve validasyonu: prospektif açık kohort çalışması. , 335 (7611): 136), şimdi yöntemlerini merak ediyorum.
Wolfgang

1
İşte bir benzetme. Varsayalım ki yaşlanmanın koşma kabiliyeti ile nasıl ilişkili olduğunu değerlendirmek istersiniz. ROC yaklaşımı, birisinin koşma yeteneği göz önüne alındığında, belirli (keyfi) bir yaşın üzerinde olma olasılığı nedir? Bir kohort çalışmasında sadece bağımsız ve bağımlı değişkenlerin rollerini tersine çevirmek için karışıklık ekler ve ROC eğrileri de kötü istatistiksel uygulama olarak bilinen bir öngörücü üzerinde kesim yapmaya teşvik eder - biostat.mc.vanderbilt.edu/ adresine bakın . CatSürekli . Alıştırma oluşturmanın yanı sıra, kesme noktaları aslında diğer tüm yordayıcıların işlevleri olmalıdır.
Frank Harrell

Tekrar, cevap verdiğiniz için teşekkürler. Yine de tamamen ikna olmadım. Sürekli bir değişkenin keyfi kategorize edilmesinin kötü uygulama olduğuna tamamen katılıyorum, ancak ROC yaklaşımı tüm olası kesintileri kategorize ediyor ve AUC aracılığıyla bu bilgileri özetliyor. Yani bu konuda keyfilik yok. Ayrıca lojistik regresyon modelleri için standart ve kabul edilmiş bir uygulama gibi görünüyor. Peki genel olarak ya da sadece hayatta kalma modelleri bağlamında ROC eğrilerinin kullanımına karşı mısınız?
Wolfgang

2
X=xX>c

Deneyimlerim bana birçok araştırmacının / uygulayıcının aslında ikili karar kuralları (bunun yararlı olup olmadığını bir kenara bırakarak) istediğini söylüyor. Her halükarda, bu R işlevlerinden bazılarını takip edeceğim ve bunun beni nereden aldığını göreceğim. Tartışma için teşekkürler.
Wolfgang

0

Bu sorunun oldukça eski olduğunu biliyorum ama aynı sorunla karşılaştığımda yaptığım şey doğrulama setindeki her konu için bir "puan" elde etmek için tahmin fonksiyonunu kullanmak oldu. Bunu, deneklerin skorun medyandan daha yüksek veya düşük olmasına göre bölünmesi ve Kaplan-Meier eğrisinin çizilmesi izlenmiştir. Modeliniz öngörücü ise, bu konuların ayrılmasını göstermelidir. Ayrıca R'deki hayatta kalma paketinden gelen coxph fonksiyonunu kullanarak skorun (normalde ln [normal dağılım için]) sağkalım ile korelasyonunu da test ettim.

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.