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 mice
gó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 rms
sau 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; mice
Có vẻ đơn giản hơn để sử dụng.