Bisakah seseorang menjelaskan model Cox saya kepada saya dalam bahasa Inggris?
Saya memasang model regresi Cox berikut untuk semua data saya menggunakan cph
fungsi. Data saya disimpan di objek yang disebut Data
. Variabel w
,, x
dan y
kontinu; z
adalah faktor dua level. Waktu diukur dalam bulan. Beberapa pasien saya kehilangan data untuk variabel z
( NB : Saya telah mencatat saran Dr. Harrell, di bawah, bahwa saya menyalahkan nilai-nilai ini untuk menghindari bias model saya, dan akan melakukannya di masa depan).
> fit <- cph(formula = Surv(time, event) ~ w + x + y + z, data = Data, x = T, y = T, surv = T, time.inc = 12)
Cox Proportional Hazards Model
Frequencies of Missing Values Due to Each Variable
Surv(time, event) w x y z
0 0 0 0 14
Model Tests Discrimination
Indexes
Obs 152 LR chi2 8.33 R2 0.054
Events 64 d.f. 4 g 0.437
Center 0.7261 Pr(> chi2) 0.0803 gr 1.548
Score chi2 8.07
Pr(> chi2) 0.0891
Coef S.E. Wald Z Pr(>|Z|)
w -0.0133 0.0503 -0.26 0.7914
x -0.0388 0.0351 -1.11 0.2679
y -0.0363 0.0491 -0.74 0.4600
z=1 0.3208 0.2540 1.26 0.2067
Saya juga mencoba menguji asumsi bahaya proporsional dengan menggunakan cox.zph
perintah di bawah ini, tetapi tidak tahu bagaimana menafsirkan hasilnya. Memutar plot()
perintah memberikan pesan kesalahan.
cox.zph(fit, transform="km", global=TRUE)
rho chisq p
w -0.1125 1.312 0.2520
x 0.0402 0.179 0.6725
y 0.2349 4.527 0.0334
z=1 0.0906 0.512 0.4742
GLOBAL NA 5.558 0.2347
Masalah pertama
- Adakah yang bisa menjelaskan hasil keluaran di atas kepada saya dalam bahasa Inggris? Saya memiliki latar belakang medis dan tidak ada pelatihan formal dalam statistik.
Masalah kedua
Seperti yang disarankan oleh Dr. Harrell, saya ingin memvalidasi model saya secara internal dengan melakukan 100 iterasi cross-validasi 10 kali lipat menggunakan
rms
paket (dari apa yang saya pahami, ini akan memerlukan pembuatan100 * 10 = 1000
model yang berbeda dan kemudian meminta mereka untuk memprediksi waktu hidup pasien yang belum pernah mereka lihat).Saya mencoba menggunakan
validate
fungsi, seperti yang ditunjukkan.> v1 <- validate(fit, method="crossvalidation", B = 10, dxy=T) > v1 index.orig training test optimism index.corrected n Dxy -0.2542 -0.2578 -0.1356 -0.1223 -0.1320 10 R2 0.0543 0.0565 0.1372 -0.0806 0.1350 10 Slope 1.0000 1.0000 0.9107 0.0893 0.9107 10 D 0.0122 0.0128 0.0404 -0.0276 0.0397 10 U -0.0033 -0.0038 0.0873 -0.0911 0.0878 10 Q 0.0155 0.0166 -0.0470 0.0636 -0.0481 10 g 0.4369 0.4424 0.6754 -0.2331 0.6700 10
Bagaimana Anda melakukan resampling 100x? Saya pikir kode saya di atas hanya melakukan validasi silang sekali.
Saya kemudian ingin tahu seberapa bagus model saya di prediksi. Saya mencoba yang berikut ini:
> c_index <- abs(v1[1,5])/2 + 0.5 > c_index [1] 0.565984
Apakah ini berarti bahwa model saya hanya sedikit lebih baik daripada membalik koin?
Masalah ketiga
Dr. Harrell menunjukkan bahwa saya mengasumsikan linearitas untuk efek kovariat, dan bahwa jumlah kejadian dalam sampel saya hampir tidak cukup besar untuk cocok dengan model yang andal jika semua efek kovariat kebetulan linear.
- Apakah ini berarti saya harus memasukkan semacam istilah interaksi dalam model saya? Jika demikian, ada saran untuk apa yang harus dimasukkan?
cph
kepada saya dalam bahasa Inggris, atau mengarahkan saya ke referensi yang akan melakukannya. Harrell, terima kasih banyak atas bantuan Anda sejauh ini!