我创建了一些Cox回归模型,我想看看这些模型的性能如何,我认为类似于本文使用的ROC曲线或c统计量可能有用:
阿米蒂奇采用Logistic回归,但我不知道是否有可能使用来自生存包模式,survivalROC给这个是可能的暗示,但我无法弄清楚如何得到这工作与常规Cox回归。
如果有人向我展示如何在此示例中进行ROC分析,我将不胜感激:
library(survival)
data(veteran)
attach(veteran)
surv <- Surv(time, status)
fit <- coxph(surv ~ trt + age + prior, data=veteran)
summary(fit)
如果可能的话,我将感谢原始的c静态输出和一个漂亮的图表
谢谢!
更新资料
非常感谢您的回答。@Dwin:我只是想确保在选择答案之前我已经理解了。
据我理解,根据DWin的建议进行的计算:
library(survival)
library(rms)
data(veteran)
fit.cph <- cph(surv ~ trt + age + prior, data=veteran, x=TRUE, y=TRUE, surv=TRUE)
# Summary fails!?
#summary(fit.cph)
# Get the Dxy
v <- validate(fit.cph, dxy=TRUE, B=100)
# Is this the correct value?
Dxy = v[rownames(v)=="Dxy", colnames(v)=="index.corrected"]
# The c-statistic according to the Dxy=2(c-0.5)
Dxy/2+0.5
我不熟悉validate函数和引导程序,但是在看了教授之后。弗兰克·哈雷尔(Frank Harrel)在R-help上的回答我认为这可能是获得Dxy的方法。验证帮助状态:
...在每次重采样时都要计算Somers的Dxy等级相关性(这比基于似然度的统计时间要长一点)。对应于行Dxy的值等于2 *(C-0.5),其中C是C指数或一致性概率。
我想我对列大为困惑。我认为校正后的值是我应该使用的值,但我并没有真正理解验证输出:
index.orig training test optimism index.corrected n
Dxy -0.0137 -0.0715 -0.0071 -0.0644 0.0507 100
R2 0.0079 0.0278 0.0037 0.0242 -0.0162 100
Slope 1.0000 1.0000 0.2939 0.7061 0.2939 100
...
在R-help问题中,我了解到,如果我有分层,我应该在cph中使用“ surv = TRUE”,但是我不确定validate函数中“ u = 60”参数的用途是什么。如果您能帮助我理解这些内容并确认我没有犯任何错误,将不胜感激。
index.corrected
应该强调的是。这些是对未来可能表现的估计。 因为您没有阶层u=60
,validate
所以不需要。如果您有地层,生存曲线会交叉,并且您需要指定一个特定的时间点以获取广义ROC区域。
cph()
命令。