如何解决UseMethod报错:concordance函数无适用方法问题?
问题解决:concordance函数报错的修复方案
错误原因
你使用的survival包中的concordance()函数,无法直接接收数值类型的风险评分(p)和时间向量作为参数。该函数的设计是基于**生存分析对象(Surv)**来计算一致性指数(C-index),必须同时结合生存时间和事件状态信息,而非单独传入时间向量。
解决方法
你需要先利用数据集里的time(生存时间)和status(事件状态,0=删失,1=发生事件)列构造Surv对象,再结合预测得到的风险评分计算C-index。具体代码如下:
修正后的完整代码
library(survivalmodels) library(survival) library(reticulate) set.seed(10) data <- simsurvdata(20) fit <- deepsurv(data=data[1:10, ]) p <- predict(fit, type="risk", newdata=data[11:20, ]) # 构造测试集的生存对象,必须包含time和status test_surv <- Surv(data[11:20, "time"], data[11:20, "status"]) # 计算一致性指数 concordance(test_surv ~ p)
补充说明
simsurvdata()生成的数据集默认包含time和status字段,因此可以直接用来构造Surv对象。concordance(test_surv ~ p)的写法会让函数基于生存对象和风险评分,正确计算两者之间的一致性,也就是生存分析中常用的C-index。
内容的提问来源于stack exchange,提问作者Huan MD
相关产品推荐
相关产品推荐

