Birkaç Cox regresyon modeli oluşturdum ve bu modellerin ne kadar iyi performans gösterdiğini görmek istiyorum ve belki de bu makalelerin kullanımına benzer bir ROC eğrisi veya c-istatistiği yararlı olabilir:
Armitage lojistik regresyon kullanılır ama hayatta kalma paketinden bir model kullanmak mümkündür acaba, survivalROC bu mümkün olmanın bir ipucu verir ama ben normal Cox regresyon ile çalışmalarına olsun anlamaya olamaz.
Birisi bana bu örnek üzerinde bir ROC analizi yapmak nasıl gösterirseniz minnettar olacaktır:
library(survival)
data(veteran)
attach(veteran)
surv <- Surv(time, status)
fit <- coxph(surv ~ trt + age + prior, data=veteran)
summary(fit)
Mümkünse hem ham c-statik çıktıyı hem de hoş bir grafiği takdir ediyorum
Teşekkürler!
Güncelleme
Cevaplarınız için çok teşekkür ederim. @Dwin: Cevabınızı seçmeden hemen önce anladığımdan emin olmak istiyorum.
DWin'in önerisine göre anladığım gibi hesaplama:
library(survival)
library(rms)
data(veteran)
fit.cph <- cph(surv ~ trt + age + prior, data=veteran, x=TRUE, y=TRUE, surv=TRUE)
# Summary fails!?
#summary(fit.cph)
# Get the Dxy
v <- validate(fit.cph, dxy=TRUE, B=100)
# Is this the correct value?
Dxy = v[rownames(v)=="Dxy", colnames(v)=="index.corrected"]
# The c-statistic according to the Dxy=2(c-0.5)
Dxy/2+0.5
Doğrulama işlevini ve bootstrapping'i bilmiyorum ama prof'e baktıktan sonra. Frank Harrel'in burada R-yardımındaki cevabı muhtemelen Dxy'yi almanın yolu olduğunu düşündüm. Durumların doğrulanması için yardım:
... Somers 'Dxy rütbe korelasyonu her bir yeniden örneklemde hesaplanacaktır (bu olasılık bazlı istatistiklerden biraz daha uzun sürer). Dxy sırasına karşılık gelen değerler 2 * (C - 0.5) 'e eşittir, burada C C-endeksi veya uyum olasılığıdır.
Sanırım çoğunlukla sütunlarla kafam karıştı. Düzeltilmiş değerin kullanmam gereken değer olduğunu anladım, ancak validate çıktısını gerçekten anlamadım:
index.orig training test optimism index.corrected n
Dxy -0.0137 -0.0715 -0.0071 -0.0644 0.0507 100
R2 0.0079 0.0278 0.0037 0.0242 -0.0162 100
Slope 1.0000 1.0000 0.2939 0.7061 0.2939 100
...
In R yardım sorusu ben tabakalar var ama validate işlevinde "u = 60" parametresinin amacı ne olduğuna belirsiz mıyım Cph "Gözetim = DOĞRU" olması gerektiğini anladım. Bunları anlamama ve herhangi bir hata yapmadığımı kontrol etmeme yardımcı olursanız minnettar olurum.
index.corrected
vurgulanması gereken şeydir. Bunlar gelecekteki muhtemel performans tahminleridir. katmanınız u=60
olmadığı için gerekli değildir validate
. Tabakalarınız varsa, hayatta kalma eğrileri kesişebilir ve genelleştirilmiş ROC alanını elde etmek için belirli bir zaman noktası belirtmeniz gerekir.
cph()
komutuna bir göz atacağım .