我希望在历史数据上运行一个竞争风险模型,并预测新数据集中每种类型的死亡在指定时期(假设一个时期)的可能性。到目前为止,我已经查看comp.risk
了timereg
package 和crr
in cmprsk
,但是在弄清楚如何使用他们的 predict 方法来返回这些可能性时遇到了麻烦。
使用bmt
数据集(来自timereg
包)并comp.risk
作为示例,我想做类似的事情:
m <- comp.risk(Surv(time, cause>0)~platelet+age+tcell, data=bmt,
bmt$cause, causeS=1, resample.iid=1)
ndata <- data.frame(platelet=c(1,0,0), age=c(0,1,0), tcell=c(0,0,1),
start.time=c(1, 1, 1), end.time=c(2, 2, 2))
out <- predict(m, newdata=ndata)
t=1
理想情况下,这将预测和之间每种死亡类型的可能性t=2
,但 predict 函数会返回其他类型的结果。
最后一行不起作用,因为模型不是使用 start/stopSurvival
对象类型构建的,并且comp.risk
似乎没有采用左截断数据。为了说明,下面的模型语句包括开始时间返回错误Error in comp.risk(Surv(start.time, time, cause > 0) ~ platelet + age +
: only right censored data。
m <- comp.risk(Surv(rep(0, nrow(bmt)), time, cause>0)~platelet+age+tcell, data=bmt,
bmt$cause, causeS=1, resample.iid=1)