Saya telah membuat beberapa model regresi Cox dan saya ingin melihat seberapa baik kinerja model-model ini dan saya pikir mungkin kurva ROC atau statistik-c mungkin berguna seperti artikel ini:
Armitage menggunakan regresi logistik tetapi saya bertanya-tanya apakah mungkin menggunakan model dari paket survival, survivalROC memberikan petunjuk bahwa ini mungkin, tetapi saya tidak tahu bagaimana cara membuatnya dengan regresi Cox biasa.
Saya akan berterima kasih jika seseorang akan menunjukkan kepada saya bagaimana melakukan analisis ROC pada contoh ini:
library(survival)
data(veteran)
attach(veteran)
surv <- Surv(time, status)
fit <- coxph(surv ~ trt + age + prior, data=veteran)
summary(fit)
Jika memungkinkan, saya akan sangat menghargai output c-statika mentah dan grafik yang bagus
Terima kasih!
Memperbarui
Terima kasih banyak atas jawabannya. @Dwin: Saya hanya ingin memastikan bahwa saya sudah memahaminya dengan benar sebelum memilih jawaban Anda.
Perhitungannya seperti yang saya pahami sesuai saran DWin:
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
Saya tidak terbiasa dengan fungsi validasi dan bootstrap tetapi setelah melihat prof. Jawaban Frank Harrel di sini, di R-help, saya pikir itu mungkin cara untuk mendapatkan Dxy. Bantuan untuk menyatakan validasi:
... Korelasi peringkat Dxy Somers 'akan dihitung pada setiap sampel ulang (ini membutuhkan waktu sedikit lebih lama daripada statistik berbasis kemungkinan). Nilai yang sesuai dengan baris Dxy sama dengan 2 * (C - 0,5) di mana C adalah indeks-C atau probabilitas konkordansi.
Saya kira saya sebagian besar bingung dengan kolom. Saya pikir nilai yang diperbaiki adalah yang harus saya gunakan tetapi saya belum benar-benar memahami hasil validasi:
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
...
Dalam pertanyaan R-help saya telah memahami bahwa saya harus memiliki "surv = TRUE" di cph jika saya memiliki strata tetapi saya tidak yakin apa tujuan dari parameter "u = 60" dalam fungsi validasi. Saya akan berterima kasih jika Anda dapat membantu saya memahami ini dan memastikan bahwa saya tidak melakukan kesalahan.
cph()
perintahnya.index.corrected
adalah apa yang harus ditekankan. Ini adalah perkiraan kemungkinan kinerja masa depan.u=60
tidak diperlukanvalidate
karena Anda tidak memiliki strata. Jika Anda memiliki strata, kurva kelangsungan hidup dapat melintas, dan Anda perlu menentukan titik waktu tertentu untuk mendapatkan area ROC umum.Jawaban:
@chl telah menunjuk ke jawaban spesifik untuk pertanyaan Anda. Fungsi paket 'rms'
cph
akan menghasilkan Somers-D yang dapat diubah secara sepele menjadi indeks-c. Namun, Harrell (yang memperkenalkan indeks-c untuk praktik biostatistik) menganggap ini tidak bijaksana sebagai strategi umum untuk menilai tindakan prognostik, karena memiliki daya rendah untuk diskriminasi di antara alternatif. Alih-alih mengandalkan literatur bedah untuk panduan metodologis Anda, akan lebih bijaksana untuk mencari akumulasi kebijaksanaan dalam teks Harrell, "Strategi Pemodelan Regresi" atau "Model Prediksi Klinis" Steyerberg.sumber
Bergantung pada kebutuhan Anda, menanamkan model di dalam model yang lebih besar dan melakukan kemungkinan rasio "chunk" untuk nilai tambah variabel tambahan akan memberi Anda tes yang kuat. Buku saya berbicara tentang indeks yang muncul dari pendekatan ini ("indeks kecukupan").χ2
sumber