Sử dụng nhiều mức độ cho các mối nguy theo tỷ lệ Cox, sau đó xác nhận với gói rms?


8

Tôi đã nghiên cứu gói chuột và tôi chưa tìm ra cách sử dụng nhiều lần cắt ngang để tạo mô hình Cox, sau đó xác thực mô hình đó bằng chức năng của gói rmsvalidate() . Đây là một số mã mẫu của những gì tôi có cho đến nay, bằng cách sử dụng bộ dữ liệu veteran:

library(rms)
library(survival)
library(mice)

remove(veteran)
data(veteran)
veteran$trt=factor(veteran$trt,levels=c(1,2))
veteran$prior=factor(veteran$prior,levels=c(0,10))

#Set random data to NA 
veteran[sample(137,4),1]=NA
veteran[sample(137,4),2]=NA
veteran[sample(137,4),7]=NA

impvet=mice(veteran)
survmod=with(veteran,Surv(time,status))

#make a CPH for each imputation
for(i in seq(5)){
    assign(paste("mod_",i,sep=""),cph(survmod~trt+celltype+karno+age+prior,
        data=complete(impvet,i),x=T,y=T))
}

#Now there is a CPH model for mod_1, mod_2, mod_3, mod_4, and mod_5.

Bây giờ, nếu tôi chỉ làm việc với một mô hình CPH, tôi sẽ làm điều này:

validate(mod_1,B=20)

Vấn đề tôi gặp phải là làm thế nào để lấy 5 mô hình CPH (1 cho mỗi lần cắt bỏ) và có thể tạo một mô hình gộp mà sau đó tôi có thể sử dụng rms. Tôi biết rằng micegói có một số chức năng tổng hợp tích hợp nhưng tôi không tin rằng chúng hoạt động với cphđối tượng trong đó rms. Chìa khóa ở đây là vẫn có thể sử dụng rmssau khi gộp. Tôi đã xem xét việc sử dụng aregImpute()chức năng của Mitchell nhưng tôi gặp một số rắc rối khi làm theo các ví dụ và tài liệu; miceCó vẻ đơn giản hơn để sử dụng.


Nhân tiện: người kiểm duyệt, nếu bạn nghĩ Q này thuộc về Stack Overflow thì xin vui lòng di chuyển nó.
JJM

Xin chào @JJM. Tôi đang ở trong một tình huống tương tự khi tôi cần gộp các mô hình cox của mình từ các bộ dữ liệu được liệt kê khác nhau và sau đó xác nhận. Để tạo một mô hình gộp, các mối nguy tích lũy cơ sở phải được kết hợp như thế nào? Nhật ký của các tỷ lệ nguy hiểm (hệ số) có thể được gộp chung một cách dễ dàng vì chúng có tính quy phạm tiệm cận. Tuy nhiên, để tính xác suất sống sót, bạn cũng cần ước tính nguy cơ cơ bản (tích lũy). Điều này không có tính quy tắc tiệm cận, theo như tôi biết, vì vậy tôi không chắc chắn làm thế nào để gộp nhiều mô hình coxph thành một mô hình duy nhất. Rất cám ơn nếu bạn thấy điều này.
AP30

Câu trả lời:


12

Các fit.mult.imputechức năng trong Hmiscgói sẽ vẽ imputations tạo ra từ micegiống như nó sẽ từ aregImpute. cphsẽ làm việc với fit.mult.impute. Câu hỏi khó hơn là làm thế nào để xác nhận thông qua việc lấy mẫu lại khi thực hiện nhiều lần cắt bỏ. Tôi không nghĩ ai đã thực sự giải quyết điều đó. Tôi thường lấy ra một cách dễ dàng và sử dụng một lần cắt bỏ để xác thực mô hình, sử dụng Hmisc transcanhàm, nhưng sử dụng nhiều lần cắt ngang để phù hợp với mô hình cuối cùng và để có được các lỗi tiêu chuẩn.


1
Cảm ơn bạn đã trả lời hữu ích của bạn, Tiến sĩ Mitchell. Tôi chỉ muốn tóm tắt sự hiểu biết của tôi về những gì bạn nói. Vui lòng sửa lại cho tôi nếu tôi đọc sai fit.mult.impute():: Sử dụng điều này để gộp các cph()mô hình (5 trong số chúng, dựa trên 5 lần từ chối mice) và có được tỷ lệ rủi ro gộp và các lỗi tiêu chuẩn. transcan(): Sử dụng điều này để tạo ra một lần cắt bỏ duy nhất và xác nhận điều đó. Có vẻ như điều này cung cấp một xác nhận đủ tốt. Là tất cả những điều đó đúng? Tôi thực sự đánh giá cao sự giúp đỡ của bạn, Tiến sĩ Mitchell.
JJM

1
Đúng rồi. Việc xác thực đơn giản chỉ là một thay thế tạm thời cho phù hợp với nhiều lần cắt cụt.
Frank Harrell
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.