我有一个数据集如下:
Patient_ID Time_Start Time_End X1 X2 X3 Status
001 0 1 0
001 1 2 0
001 2 3 0
001 3 4 0
002 0 1 0
002 1 2 0
002 2 3 0
002 3 4 1
其中 X3 是时间相关变量。
我建立了一个cox回归模型如下:
model.cox=coxph(Surv(Time_Start, Time_End, Status)~X1+X2+X3+CLUSTER(ID), data=mydata)
得到模型后,我使用“pec”库中的 predictSurvProb() 来预测每个患者在每个时间点的生存概率:
predicted.surv.prob=predictSurvProb(model.cox, newdata=mydataset, times=seq(1:4))
但是,该函数返回如下数据框,其中每条记录在第 1 个月和第 4 个月之间都有自己的生存概率:
Patient_ID Time_Start Time_End Month1 Month2 Month3 Month4
001 0 1 0.99 0.98 0.97 0.96
001 1 2 0.985 0.976 0.968 0.965
001 2 3 .......................
001 3 4 .........................
002 0 1 ........................
002 1 2 ........................
002 2 3 ..........................
002 3 4
显然,结果没有意义。患者 001 有四组预测概率,每组都不同。
我怎样才能添加一些东西让 predictSurvProb() 知道所有具有相同 ID 的记录应该组合在一起并且只返回一组预测?