我一直在研究mouse包,但我还没有找到一种方法来使用多重插补来制作 Cox 模型,然后使用rms包的validate()
功能验证该模型。这是我到目前为止使用数据集的一些示例代码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.
现在,如果我只使用一个 CPH 模型,我会这样做:
validate(mod_1,B=20)
我遇到的问题是如何采用 5 个 CPH 模型(每个插补 1 个),并能够创建一个池模型,然后我可以使用rms
. 我知道这个mice
包有一些内置的池功能,但我不相信它们可以cph
与rms
. rms
这里的关键是池化后仍然可以使用。我研究过使用 Harrell 的aregImpute()
函数,但在遵循示例和文档时遇到了一些问题; mice
似乎更易于使用。