我用survival包中的lung数据集试了你的代码。
coxph模型和用这个模型predict的结果,与后面分类树操作没有关系。
后面的代码,rpart构造了一个分类树fit,但是可能因为rpart包和survival包的predict函数冲突,不能直接用rpart包里的predict函数对surv类型数据分类树预测,而要改成party类型才能预测。这是你代码的意图。我感觉矛盾形成于surv类型数据和rpart函数。
而改成party类型后,分类树预测的结果,也就是你最后一行代码,形成的是对每一个样本预测的生存曲线,也就是说每一个样本的预测值都不是一个确定的单一数值。
所以,你设想的ROC对生存曲线数据没有办法实现。
但是,rpart函数,也可以对特定的变量进行分类,比如说lung数据集中的statu,kyphosis数据集中的Kyphosis,只不过函数采用的分类公式不是生存曲线数据。依据这种分类树,也可以作预测,结果是每一个样本的目标变量的单一数值。针对这种结果,就可以做出ROC,类似一下代码。但是,这种结果我想不是你要的。
另外,survival包里的concordance函数可以计算观察值和预测值的符合程度,你试一下是否可用。示例代码: